On 13 April 2012 11:47, Richard Earnshaw Richard.Earnshaw@arm.com wrote:
On 12/04/12 20:10, Allen Martin wrote:
I have a cross toolchain I configured with "--with-arch=armv7-a --with-cpu=cortex-a9 --with-tune=cortex-a9" and I want the linker to emit armv4t compatible thumb interworking, but I can't seem to get it to.
I noticed that if I create a armv4t toolchain with "--with-arch=armv4t --with-cpu=arm7tdmi --with-tune=arm7tdmi" and then I pass "--use-blx" to the linker it will emit armv7 thumb interworking. There doesn't seem to be any inverse "--no-use-blx" type switch though. Is this a bug/limitation of the linker or am I misunderstanding something?
it's all in the friendly manual :-)
The option you need is --fix-v4bx.
That option is for supporting pre-thumb cores, which is not necessary here.
BTW, taking a v7a toolchain and trying to use it to build v4 binaries is likely to be problematic. For it to work you'll need to ensure that *all* your libraries are built to support back-conversion to v4, including those that are normally built as part of the toolchain (libgcc, etc).
This is in the context of building a u-boot SPL for Tegra2/3. This is completely self-contained, not even relying on the compiler's libgcc.