Codesourcery Toolchain: EABI or GNU/LINUX

2,491 views
Skip to first unread message

Arno

unread,
Aug 20, 2009, 6:43:33 AM8/20/09
to Beagle Board
Codesorcery offers 2 version for arm.
Can someone explain me advantages and disadvantages of these both
version?
What version do you use?

And why does the EABI version is "arm-none-eabi...." ?!

Dan Poirot

unread,
Aug 20, 2009, 8:55:31 AM8/20/09
to beagl...@googlegroups.com
Use the GNU/Linux version.

The GNU naming convention tells us that "arm-none-eabi...." is for no OS. The cross compiler executable name is based on the configuration and compile time options used to build GCC so the versions are different. 

"Back in the day" it was important to match the version of GNU with the version of the kernel source tree. That isn't as much of an issue these days but newer compilers are not necessarly safe to use 

best regards,
- dan

Arno

unread,
Aug 20, 2009, 11:01:58 AM8/20/09
to Beagle Board
Thanks for your answer, but what do you mean with no OS?
The other version is
...arm_non_linux_gnueabi...

Sorry, I can't understand you. At least I could compile the kernel
with
arm_non_eabi to. I didn't build a hole system, because I want to learn
more before
doing this work.


On 20 Aug., 14:55, Dan Poirot <dtpoi...@gmail.com> wrote:

John Beetem

unread,
Aug 20, 2009, 12:13:11 PM8/20/09
to Beagle Board
Arno,

I've had good luck with CodeSourcery's Sourcery G++ Lite 2007q3-51 for
ARM GNU/Linux. It's available at:

http://www.codesourcery.com/sgpp/lite/arm/portal/release313

The compiler is called "arm-none-linux-gnueabi-gcc".

Newer versions have various bugs, discussed here: http://www.elinux.org/ARMCompilers.

"No OS" is for stand-alone embedded applications where the application
code accesses chip hardware directly instead of being built on a
standard (or non-standard) Operating System. It's often preferred for
small embedded applications since it avoids the complexity of writing
or modifying OS device drivers, and avoids the need to make space for
a large OS kernel. On the other hand, a stand-alone application has
to implement its own file systems and interrupt handlers, and the
stand-alone application is difficult to port to other hardware.

If you want to run your application on top of Linux, use the GNU/Linux
version. If you want to program down to the bare metal, use the no-OS
version.

Hope this helps,
John

Laurent Desnogues

unread,
Aug 20, 2009, 12:58:33 PM8/20/09
to beagl...@googlegroups.com
On Thu, Aug 20, 2009 at 5:01 PM, Arno<arno.s...@web.de> wrote:
>
> Thanks for your answer, but what do you mean with no OS?
> The other version is
> ...arm_non_linux_gnueabi...
>
> Sorry, I can't understand you. At least I could compile the kernel
> with
> arm_non_eabi to. I didn't build a hole system, because I want to learn
> more before
> doing this work.

What Dan meant is that the ARM EABI version is used
for programs that don't rely on an existing OS; this is
sometimes called "bare metal". The Linux kernel is an
example of such a program.

The ARM Linux EABI version is to compile program
that are supposed to run on a machine running Linux.


Laurent

Måns Rullgård

unread,
Aug 20, 2009, 2:10:19 PM8/20/09
to beagl...@googlegroups.com
Laurent Desnogues <laurent....@gmail.com> writes:

The compiler is of course the same in all cases. The only difference
is what libc it is set up to link against by default.

--
Måns Rullgård
ma...@mansr.com

Mike Wiles

unread,
Aug 20, 2009, 2:49:34 PM8/20/09
to beagl...@googlegroups.com

Unsubscribe is not working!

Can anyone help with this?

Mikew


Daniel Robinson

unread,
Aug 20, 2009, 3:03:38 PM8/20/09
to beagl...@googlegroups.com
The issue is whether crt0 is linked with the resulting linked object.  crt0 stands for c run time and it loads the process as a *nix process.  For working on projects where you are going to control the processor as it comes out of reset, e.g., u-boot, etc., you want to make sure that you are not linking against crt0. 

I'm using the GNU toolset I got from Denx.de. It reports that the target is arm-linux, but I am writing bare-metal code with it.  I use a linker script that names the start symbol as _reset, which I've defined in an assembler file.

--dan
--
daniel g robinson
www.bornlivelovedie.com

Måns Rullgård

unread,
Aug 20, 2009, 3:06:15 PM8/20/09
to beagl...@googlegroups.com
John Beetem <johnb...@yahoo.com> writes:

> Arno,
>
> I've had good luck with CodeSourcery's Sourcery G++ Lite 2007q3-51 for
> ARM GNU/Linux. It's available at:

Version 2009q1 seems quite stable, and it generates faster code too,
in some cases as much as 10%. It is slightly worse for floating-point
heavy code though, so beware.

--
Måns Rullgård
ma...@mansr.com

Glen Duncan

unread,
Aug 20, 2009, 3:42:33 PM8/20/09
to beagl...@googlegroups.com
It looks like you sent your unsubscribe to the list, not to the unsubscribe address inserted into the end of every post.

Marcin Juszkiewicz

unread,
Aug 20, 2009, 3:52:34 PM8/20/09
to beagl...@googlegroups.com
Dnia czwartek, 20 sierpnia 2009 o 21:42:33 Glen Duncan napisał(a):

> It looks like you sent your unsubscribe to the list, not to the

> *unsubscribe address* inserted into the end of every post.

Which does not work anyway. I sent mails to unsub...@beagleboard.org few
times already.

Regards,
--
JID: h...@jabber.org
Website: http://marcin.juszkiewicz.com.pl/
LinkedIn: http://www.linkedin.com/in/marcinjuszkiewicz


Jason Kridner

unread,
Aug 20, 2009, 4:43:31 PM8/20/09
to beagl...@googlegroups.com
2009/8/20 Marcin Juszkiewicz <mar...@juszkiewicz.com.pl>:
>
> Dnia czwartek, 20 sierpnia 2009 o 21:42:33 Glen Duncan napisał(a):
>
>> It looks like you sent your unsubscribe to the list, not to the
>> *unsubscribe address* inserted into the end of every post.
>
> Which does not work anyway. I sent mails to unsub...@beagleboard.org few
> times already.

You must send that message from the address that you want
unsubscribed, as Glen mentioned. I manually disabled the e-mails,
though you could have done so by going to the settings on your
account.

Thao Hull

unread,
Aug 20, 2009, 4:28:31 PM8/20/09
to beagl...@googlegroups.com
You need to send the e-mail to beagleboard...@googlegroups.com

John Beetem

unread,
Aug 20, 2009, 6:26:24 PM8/20/09
to Beagle Board
On Aug 20, 12:06 pm, Måns Rullgård <m...@mansr.com> wrote:
> Version 2009q1 seems quite stable, and it generates faster code too,
> in some cases as much as 10%.  It is slightly worse for floating-point
> heavy code though, so beware.

Thanks, Måns, I'll give it a try one of these days. I detest floating
point and almost never use it.

John

Arno

unread,
Aug 21, 2009, 6:59:27 AM8/21/09
to Beagle Board
On 20 Aug., 18:58, Laurent Desnogues <laurent.desnog...@gmail.com>
wrote:
Thanks so far. It seems that it is not possible to build a complete
linux system (kernel, driver, application) with this.

Although - I tried to compile the kernel and it work. Don't know
whether the kernel works ;)

Arno

unread,
Aug 21, 2009, 7:01:31 AM8/21/09
to Beagle Board


On 20 Aug., 21:06, Måns Rullgård <m...@mansr.com> wrote:
> m...@mansr.com

Which compiler has best performance in integer and float ?
Did you use some magic compiler options?

Laurent Desnogues

unread,
Aug 21, 2009, 7:24:30 AM8/21/09
to beagl...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages