This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See crosstool-NG 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] |
Hi, I have the following problem - a customer wants us to port our software to their existing embedded system, which uses an Intel PXA270 processor and runs an ancient Linux (I think it's 2.6.16). The toolchain used for this system is the 'arm-linux-toolchain-bin-12-15-04-driscoll.tar.gz'. Unfortunately, a bug in gcc-3.4.3 prevents our software from compiling correctly, so I need a newer version of gcc that uses the headers and libraries from the existing toolchain. I also need a newer binutils that will handle --gc-sections correctly. My first attempt was to build gcc-4.3.7 and binutils-2.21.1. I downloaded and unpacked the sources, added symlinks in the gcc source directory to the binutils directory in order to be able to build binutils and gcc together, and then used the following configure options: ../gcc-4.3.6/configure --target=arm-linux --prefix=/home/doenges/opt/pxa270 --with-cpu=iwmmxt --with-arch=iwmmxt --with-abi=iwmmxt --without-fp --with-float=soft --enable-cxx-flags=-mcpu=iwmmxt --with-sysroot=/proj/opt/arm-linux/arm-linux --with-local-prefix=/proj/opt/arm-linux/arm-linux --disable-nls --disable-libmudflap --disable-libssp --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long --disable-multilib This fails during building of libgcc due to __DTORS_LIST__ not being declared. If I change the --target to arm-iwmmxt-linux-gnueabi, it fails while attempting to link libgcc because gcc will generate Version4 EABI objects, while the linker expects the old (pre-EABI) ABI. If I leave out the --with-abi=iwmmxt, it fails much sooner because gcc 4.3.6 refuses to compile for iwmmxt when not using the new ABI. Figuring the ABI problem is inherent to gcc 4.x, I then tried to compile gcc-3.4.6 (again using binutils 2.21.1) using the following configure options: ../gcc-3.4.6/configure --target=arm-linux --prefix=/home/doenges/opt/pxa270 --with-cpu=iwmmxt --with-float=soft --enable-cxx-flags=-mcpu=iwmmxt --with-headers=/proj/opt/arm-linux/arm-linux/include --with-local-prefix=/proj/opt/arm-linux/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long --without-fp This also fails during linking of libgcc with the linker complaining that the object files contain FPA instructions, while the link target does not. Note that the object files don't actually contain any FPA instructions; it seems the problem is that the flags in the ELF headers don't match - objects generated by the compiler have (reported by readelf -h) Flags: 0x200, GNU EABI, software FP while the libraries in the existing toolchain have Flags: 0x602, has entry point, GNU EABI, software FP, VFP I have no idea why readelf thinks these are GNU EABI files, as it reports OS/ABI as 'ARM', with ABI version 0. I then tried compiling gcc-3.4.3 using the same configure options as in the original toolchain (obtained by running arm-linux-gcc -v): ../gcc-3.4.3/configure --target=arm-linux --prefix=/home/doenges/opt/pxa270 --with-cpu=iwmmxt --enable-cxx-flags=-mcpu=iwmmxt --with-headers=/proj/opt/arm-linux/arm-linux/include --with-local-prefix=/proj/opt/arm-linux/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long --without-fp This fails with the same error(s) as gcc 3.4.3, though the object files created by the compiler now have these flags: Flags: 0x0 So, to finally get to the point - does anyone have any idea what I must do to get a working gcc toolchain for the PXA270 using the old ABI ? With kind regards, Eric P.S.: I apologize in advance if this is not the correct mailing list for this question, but after a fruitless day of googling I'm fresh out of ideas and don't really know where else to ask. -- Dr. Eric Dönges doenges@mvtec.com MVTec Software GmbH | Neherstr. 1 | 81675 München | Germany www.mvtec.com | Tel: +49 89 457695-0 | Fax: +49 89 457695-55 Geschäftsführer: Dr. Wolfgang Eckstein, Dr. Olaf Munkelt Amtsgericht München HRB 114695 -- For unsubscribe information see http://sourceware.org/lists.html#faq
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |