[U-Boot-Users] Single ARM Toolchain?

I have created several versions of ARM cross-compiler toolchains but have not discovered a configuration that works with both "u-boot" and Linux 2.6.
Using crosstool-0.27: GCC 2.95.3, BINUTILS 2.14.90.0.8, GLIBC 2.2.5 - builds the Linux kernel but not U-Boot
GCC 2.95.3, BINUTILS 2.11.2, GLIBC 2.1.3 - builds U-Boot but not 2.6 Linux kernel (.incbin support)
The newest GCC I can build on my system is 3.2 since my host compiler is 2.96.
I have searched the archives and found that this is a common question. Unfortunately I did not find a definitive answer.
TIA
__________________________________ Do you Yahoo!? Win a $20,000 Career Makeover at Yahoo! HotJobs http://hotjobs.sweepstakes.yahoo.com/careermakeover

Allen Curtis wrote:
I have created several versions of ARM cross-compiler toolchains but have not discovered a configuration that works with both "u-boot" and Linux 2.6.
Using crosstool-0.27: GCC 2.95.3, BINUTILS 2.14.90.0.8, GLIBC 2.2.5 - builds the Linux kernel but not U-Boot
GCC 2.95.3, BINUTILS 2.11.2, GLIBC 2.1.3 - builds U-Boot but not 2.6 Linux kernel (.incbin support)
The newest GCC I can build on my system is 3.2 since my host compiler is 2.96.
I have searched the archives and found that this is a common question. Unfortunately I did not find a definitive answer.
Can you post the errors? (btw, crosstool-0.27 had some arm issues, and crosstool-0.28-rc13 has the vfp printf patch, but I'm not sure those matter for this.) - Dan

In message 20040510221009.50689.qmail@web14811.mail.yahoo.com you wrote:
I have created several versions of ARM cross-compiler toolchains but have not discovered a configuration that works with both "u-boot" and Linux 2.6.
Ummm... I've tried only few, but all seemed to work.
Using crosstool-0.27: GCC 2.95.3, BINUTILS 2.14.90.0.8, GLIBC 2.2.5 - builds the Linux kernel but not U-Boot
What is the problem when building U-Boot? Which version of U-Boot?
I have searched the archives and found that this is a common question. Unfortunately I did not find a definitive answer.
Use the ELDK?
Wolfgang Denk

Using crosstool-0.27: GCC 2.95.3, BINUTILS 2.14.90.0.8, GLIBC 2.2.5 -
builds
the Linux kernel but not U-Boot
What is the problem when building U-Boot? Which version of U-Boot?
Version 1.1.1. From other postings on u-boot it appears that the issue is soft float support...
I have searched the archives and found that this
is a
common question. Unfortunately I did not find a definitive answer.
Use the ELDK?
I will try this. Hopefully there are build instructions for the tools.
*** Copy of an email sent to Dan Kegel regarding this issue. The U-Boot compilation errors are below.
1. This will not compile Linux 2.6 because the binutils are too old. Need support for .incbin.
BINUTILS_DIR=binutils-2.11.2 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-2.95.3 GLIBC_DIR=glibc-2.1.3 LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.1.3 GLIBCCRYPT_FILENAME=glibc-crypt-2.1
2. Same problem as #1 BINUTILS_DIR=binutils-2.11.2 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-2.95.3 GLIBC_DIR=glibc-2.2.5 LINUX_DIR=linux-2.4.3 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.5
3. The kernel refuses to try to compile with GCC 3.2.x
4. Compiles Linux but has an error with U-Boot
BINUTILS_DIR=binutils-2.14.90.0.8
BINUTILS_URL=ftp://ftp.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-2.95.3 GLIBC_DIR=glibc-2.2.5 LINUX_DIR=linux-2.4.3 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.5
ERROR
/opt/crosstool/arm-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/lib/gcc-lib/arm-unknown-linux-gnu/2.95.3/libgcc.a(_udivsi3.o)(.text+0x8c): In function `Ldiv0': : relocation truncated to fit: R_ARM_PLT32 __div0
/opt/crosstool/arm-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/lib/gcc-lib/arm-unknown-linux-gnu/2.95.3/libgcc.a(_umodsi3.o)(.text+0xa8): In function `Ldiv0': : relocation truncated to fit: R_ARM_PLT32 __div0 make: *** [u-boot] Error 1
5. This appears to compile both but we are using 2.4 headers instead of 2.6.
BINUTILS_DIR=binutils-2.14.90.0.5
BINUTILS_URL=ftp://ftp.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-2.95.3 GLIBC_DIR=glibc-2.1.3 LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.1.3 GLIBCCRYPT_FILENAME=glibc-crypt-2.1
6. Tried to build using 2.6 headers. Build of the cross compiler fails.
BINUTILS_DIR=binutils-2.14.90.0.5
BINUTILS_URL=ftp://ftp.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-2.95.3 GLIBC_DIR=glibc-2.1.3 LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.1.3 GLIBCCRYPT_FILENAME=glibc-crypt-2.1
ERROR: * * Security options * Enable different security models (SECURITY) [N/y/?] (NEW) * * Cryptographic options * Cryptographic API (CRYPTO) [N/y/?] (NEW) * * Library routines * CRC32 functions (CRC32) [N/y/?] (NEW) + make ARCH=arm symlinks include/linux/version.h make: *** No rule to make target `symlinks'. Stop.
__________________________________ Do you Yahoo!? Win a $20,000 Career Makeover at Yahoo! HotJobs http://hotjobs.sweepstakes.yahoo.com/careermakeover

In message 20040511141008.36583.qmail@web14809.mail.yahoo.com you wrote:
What is the problem when building U-Boot? Which version of U-Boot?
Version 1.1.1. From other postings on u-boot it appears that the issue is soft float support...
I see. Yes, this has been reported before.
Use the ELDK?
I will try this. Hopefully there are build instructions for the tools.
Of course (or just install the binaries).
Best regards,
Wolfgang Denk
participants (3)
-
Allen Curtis
-
Daniel Kegel
-
Wolfgang Denk