Problems with ARM/thumb-crosscompiler and 64-bit systems

sarah@hederstierna.com fredrik@hederstierna.com
Thu Apr 14 13:21:00 GMT 2011


Hi

I have a problem related to cross-compilation to ARM and 64-bit systems.

The developers at our office uses mainly Ubuntu Linux, but some uses 32-bit and some 64-bit versions.

We all use the same script to build the cross-compiler toolchain for 'arm-elf-gcc-4.5.1'.
The funny is that an arm-toolchain built on a 64-bit Linux system does not produce same target ARM/thumb-binary as an arm-toolchain built on a 32-bit Linux system.

All sources we build are exactly the same, both gcc-4.5.1-toolchain-sources and target-sources, the only difference is the 32/64-bit system we use.
How can that be? I understand the cross-compiler binary might eg. link with other libs, but shouldnt the ARM/thumb cross-compiled target code be the same?
We have also a very bare metal ARM target, we don't link with any other libs at all for our target (-nostdlib).

Example, I disassembled our compiled AES128 C-code, and the 32-bit (working) version had additional thumb instructions compared to the non-working version built on a 64-bit system.

Thanks and Best Regards/Fredrik



More information about the Gcc-help mailing list