Dear Dave Martin, In message <aanlktikhv1spjcyrbrxgk2qecoq96tstken3lmp5b...@mail.gmail.com> you wrote: > > I believe such calls are getting resolved via a veneer because of a > combination the thumb2-ness of libgcc and the toolchain being used. > > In principle, the linker can know that it is linking for >= ARMv5T due > to the way it was configured and the way the input objects were built, > but GNU ld is conservative and doesn't do this automatically. As a > result, it has to generate a veneer, reached via a normal > non-interworking branch. ld has no way the veneer needs to be PIC and > use the GOT, so it isn't and doesn't.
Stupid question: why not? > The `--use-blx' switch enables the linker to use ARM/Thumb BLX > instructions (available on ARMv5t and above) in various situations. > Currently it is used to perform calls via the PLT from Thumb code using > BLX rather than using BX and a mode-switching stub before each PLT > entry. This should lead to such calls executing slightly faster. > > ...so you might explicitly want to enable this whenever building for > ARMv5 or later. > > Wolfgang, can you foresee any reason not to do that? As far as I can > see it will be safe so long as we don't use it when building for > architectured <ARMv5 (where the BLX instruction isn't supported). If care is taken that it causes no conflicts with older tool chains I'm happy with that. I guess that can be added to arch/arm/cpu/armv7/config.mk > Alternatively, using ld --emit-relocs and then embedding the > relocation information in the image so that U-Boot can use it could > help to solve the problem. I'm guessing that isn't set up at present, > though. Is there any information available about relative code sizes / performance numbers of "--emit-relocs" versus "--use-blx"? > > 2) is there an option for the toolchain to use an arm libgcc instead of > > thumb? > > You'd need to rebuild the toolchain (or at least libgcc). I believe > that no ARM libgcc is built at present for the linaro/Ubuntu tools. I > don't think the GCC packages currently support this kind of thing > well. I think that should be fixed. I guess you will run intot hat again sooner or later. BTW: why does nobody answer my questions? Can anybody shed some light on 1) when these routines have been introduced ... ? Is the specific tool chain in question available somewhere for testing? Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de Old programmers never die, they just branch to a new address. _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain