Codesourcery Toolchain: EABI or GNU/LINUX

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...." ?!

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

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.

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

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

Laurent Desnogues <laurent.desnogues@gmail.com> writes:

Unsubscribe is not working!

Can anyone help with this?

Mikew

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

John Beetem <johnbeetem@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.

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 unsubscribe@beagleboard.org few
times already.

Regards,

You need to send the e-mail to beagleboard+unsubscribe@googlegroups.com

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 unsubscribe@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.

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

John

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 :wink:

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

www.hardwarebug.org

Laurent