[uClinux-dev] Toolchain for IXP425

Chen Zhigao banyan8 at yahoo.com.sg
Thu Aug 25 03:21:07 EDT 2005


Dear all,

I have built uClinux-dist-20030522 to run on IXP425 board using the (big
endian) arm-linux-20030211 toolchain, which is recommended for the board
according to
http://ixp4xx-osdg.sourceforge.net/howtos/uClinux-IXP400-AccessLibrary-v1.2.2-Integration-HOWTO.html#install-toolchain.

Now I try to build an application to run on the uClinux using the same
toolchain, and I got a linking error below.

======================================================================
arm-linux-gcc  -O3  -D_LINUX  -D_ARM32 -Wall -D__UCLINUX 
-I../../include -I../../platform -I../../samples/common
-I/newdisk/uClinux-dist/linux-2.4.x/include -c ../../platform/platform.c
-o obj/platform.o
arm-linux-gcc  -O3  -D_LINUX  -D_ARM32 -Wall -D__UCLINUX 
-I../../include -I../../platform -I../../samples/common
-I/newdisk/uClinux-dist/linux-2.4.x/include -c async.c -o obj/async.o
arm-linux-gcc  -O3  -D_LINUX  -D_ARM32 -Wall -D__UCLINUX 
-I../../include -I../../platform -I../../samples/common
-I/newdisk/uClinux-dist/linux-2.4.x/include -c handlers.c -o
obj/handlers.o
arm-linux-gcc  -O3  -elf2flt -s \
        obj/evdb.o obj/platform.o obj/async.o obj/handlers.o 
-L../../target/bin -lmcolib -lpthread  -lc \
        -o ../../target/bin/async
/usr/local/lib/gcc-lib/arm-linux/3.2.1/../../../../arm-linux/lib/libpthread.so:
could not read symbols: Invalid operation
collect2: ld returned 1 exit status
======================================================================

However, I am able to build the application using the arm-elf toolchain
at http://www.uclinux.org/pub/uClinux/m68k-elf-tools/. The generated
binary is not recognized by the uClinux I built though. I have several
questions as follows.

1. Is the linking error because the big-endian arm-linux toolchain is
incompatible with my application?

2. If I still use the arm-linux toolchain to build my application, how
to fix the linking error?

3. If I have to use the arm-elf toolchain, how can I specify using it to
build uClinux? I try "make ARCH=arm CROSS_COMPILE=arm-elf- xconfig"
followed by a "make dep; make ARCH=arm CROSS_COMPILE=arm-elf-". But the
assembler seems not happy with the XScale setting. Below is the error.

======================================================================
make ARCH=arm CROSS_COMPILE=arm-elf- -C linux-2.4.x zImage || exit 1
make[1]: Entering directory `/newdisk/uClinux-dist/linux-2.4.x'
. scripts/mkversion > .tmpversion
arm-elf-gcc -mbig-endian -D__KERNEL__
-I/newdisk/uClinux-dist/linux-2.4.x/include  -Wall -Wstrict-prototypes
-Wno-trigraphs -Os -fno-strict-aliasing -fno-common -Uarm -fno-common
-pipe -mapcs-32 -D__LINUX_ARM_ARCH__=5 -march=armv4 -Wa,-mxscale
-mtune=strongarm -mshort-load-bytes -msoft-float  -DUTS_MACHINE='"arm"'
-DKBUILD_BASENAME=version -c -o init/version.o init/version.c
Assembler messages:
Error: Invalid processor variant -mxscale
init/version.c:27: output pipe has been closed
make[1]: *** [init/version.o] Error 1
make[1]: Leaving directory `/newdisk/uClinux-dist/linux-2.4.x'
make: *** [linux] Error 1
======================================================================

Any pointer is appreciated.

Zhigao



More information about the uClinux-dev mailing list