[U-Boot-Users] ARM Tool chain Recommendation

Curt Brune
2004-06-07T18:00:37Z

> > Related question -- For u-boot does it matter whether to use arm-linux
> > or arm-elf tool chain?
>
> Explain the differerence?

Well I have one tool chain call "arm-linux-" and one called "arm-elf-"
that I installed. I don't remember where I got the arm-linux tools
from, but the arm-elf tools came from
http://www.uclinux.org/pub/uClinux/m68k-elf-tools/

localhost$ arm-linux-gcc -v
Reading specs from /usr/lib/gcc-lib/arm-linux/2.95.4/specs
gcc version 2.95.4 20010319 (prerelease/franzo/20011204)

localhost$ arm-elf-gcc -v
Reading specs from /usr/local/lib/gcc-lib/arm-elf/2.95.3/specs
gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from
http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from
http://www.snapgear.com/)

The strange thing is these compiler define slightly different macros
by default. For instance running "gcc -E -dM tmp.c" on an empty tmp.c
files gives the following in the two cases:

arm-linux-gcc -E -dM tmp.c

#define __linux__ 1
#define __ARM_ARCH_3__ 1
#define __arm__ 1
#define linux 1
#define __GNUC_MINOR__ 95
#define __CHAR_UNSIGNED__ 1
#define __unix 1
#define __unix__ 1
#define __APCS_32__ 1
#define __GNUC__ 2
#define __linux 1
#define __ELF__ 1
#define unix 1

arm-elf-gcc -E -dM tmp.c

#define __arm_elf 1
#define arm_elf 1
#define __arm__ 1
#define __arm 1
#define __arm_elf__ 1
#define __ARM_ARCH_4T__ 1
#define __GNUC_MINOR__ 95
#define arm 1
#define __CHAR_UNSIGNED__ 1
#define __APCS_32__ 1
#define __GNUC__ 2
#define __ELF__ 1

Now the problem I run into with u-boot is that the arm-elf-gcc
compiler defines the symbol "arm", which the arm-linux-gcc does not.
This causes a problem when compiling
u-boot/include/asm-arm/processor.h, which has a structure member named
"arm".

I can #undef arm and things work OK. Or I can use arm-linux-gcc.
For my uclinux work, however, I need to use arm-elf-gcc.

I was just wondering what tool to use for u-boot. I figured the answer
was "ELDK, or course".

--

========================================================================
Curt Brune | Phone 1.650.380.2528 | Managing Principal
curt at cucy.com | WWW www.cucy.com | Cucy Systems
========================================================================
Cucy Systems -- Software. Integration. Training.
========================================================================