This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

BE-Toolchain for Intel XScale IXP4xx (ARMv5TE) processor



Hi all,


it's a quite old (and often spoken) topic, but some people (me) still don't really know how to build BE toolchains...

I'm currently using crosstool-0.28-rc25 to build a BE XScale toolchain with gcc-3.4.0, glib-2.3.2, and binutils 2.15. So far so good...

I tried two approaches "normal (just BE)" and multilib, but none of them really worked... Sometimes it builds the toolchain successfully (typ. when building a multilib-toolchain), but the result is only a LE toolchain, sometimes the build stops on an error when building glibc due to an endianess-mismatch:

[...]
/opt/crosstool/xscale/arm-linux/gcc-3.4.0-glibc-2.3.2/lib/gcc/arm-linux/3.4.0/../../../../arm-linux/bin/ld: /opt/crosstool/xscale/arm-linux/gcc-3.4.0-glibc-2.3.2/lib/gcc/arm-linux/3.4.0/libgcc.a(_ashldi3.o): compiled for a little endian system and target is big endian
/opt/crosstool/xscale/arm-linux/gcc-3.4.0-glibc-2.3.2/lib/gcc/arm-linux/3.4.0/../../../../arm-linux/bin/ld: failed to merge target specific data of file /opt/crosstool/xscale/arm-linux/gcc-3.4.0-glibc-2.3.2/lib/gcc/arm-linux/3.4.0/libgcc.a(_ashldi3.o)
[...]


My config is like the following:

arm-softfloat.dat
-----------------
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-linux
TARGET_CFLAGS="-O -mbig-endian"
BINUTILS_EXTRA_CONFIG="--with-cpu=xscaleb"
GCC_EXTRA_CONFIG="--with-float=soft --with-cpu=xscale --enable-multilib"
GLIBC_EXTRA_CONFIG="--without-fp --with-cpu=xscale"
GLIBC_EXTRA_CC_ARGS="-mbig-endian"

I adapted the t-linux, linux-elf, and t-arm-elf files in <<gcc-3.4.0/gcc/config/arm/>> to enable multilibs...

I also tried to adapt the crosstool.sh script and added some big-endian stuff to the configure command of the glibc (C_FLAGS, AS_FLAGS, and LD_FLAGS), but I still get no BE toolchain...

...so my question is, does somebody *exactly* know how to build such a toolchain, if yes please tell me, IÄm currently running out of ideas (and time...).

If I get a running (functional) toolchain, I will try to put an HOWTO and a compiled version online, that successors will have it easier...

..and yes, i already checked Dave Hylands site at http://www.davehylands.com/linux/ARM-bigendian/, but it din't work for me (I don't really know why...)

Thanks in advance,
Mike


------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]