the linaro toolchain and older arm versions
john.rigby at linaro.org
Wed Oct 6 14:31:28 UTC 2010
I'm really sorry to have started this, but for completeness here is
the rest of the story. The hypothetical scenario is a developer that
maintains u-boot for multiple platforms. Using a codesourcery or eldk
(from denx.de) toolchain one can use the appropriate -march= to get
the right code from the compiler. Also the libgcc.a is ARM so all is
well. Using a linaro toolchain using the same -march= you get the
right code from the compiler but the result will get linked with a
Thumb-2 libgcc.a and the resulting binary will not run on an older
ARM. If however libgcc.a was ARM then it would just work. Again, I'm
not saying this is a bug or even something for Linaro to care about.
It just means that the Linaro toolchain is not something that this
hypothetical u-boot maintainer would want to use as his/her one and
The naive magical solution would be to for the linker to understand
the -march="old non Thumb-2 ARM" and flag an error when linking with a
Thumb-2 libgcc.a. Even better would be for the toolchain to have
multiple libgcc's and use the right one.
The answer is that the developer just needs to know that the libgcc in
the Linaro toolchain is Thumb-2 so they must use the libgcc included
in the u-boot source when building for old ARM targets.
Again, sorry for injecting this noise. My question is answered.
On Wed, Oct 6, 2010 at 6:41 AM, Loïc Minier <loic.minier at linaro.org> wrote:
> On Tue, Oct 05, 2010, Steve Langasek wrote:
>> OOI, what are the U-Boot targets you're looking to build for that don't
>> support ARMv7? A gcc multilib package for armel will be easy to implement
>> but hard to maintain, and certainly none of the systems Linaro is targeting
>> should require a pre-Thumb-2 U-Boot, so I'm very doubtful that the ongoing
>> effort to maintain such a toolchain in Ubuntu is justified (unless we find
>> that it becomes substantially easier with multiarch, I guess, but we're a
>> ways away from that yet).
> Isn't Thumb 2 the actual issue here? U-Boot is built with -marm; does
> it cause any issue to mix with our Thumb-2 libgcc?
> Loďc Minier
More information about the linaro-dev