ARM THUMB_FUNC symbol type ?
Christophe LYON
christophe.lyon@st.com
Mon Jan 26 12:40:00 GMT 2009
On 23.01.2009 19:30, Daniel Jacobowitz wrote:
> On Fri, Jan 23, 2009 at 07:02:55PM +0100, Christophe LYON wrote:
>> Maybe there should be a fix in readelf/objdump so that it is more obvious
>> to the end-user?
>
> IMO no - we're marking things in readelf exactly the way the ABI says
> we ought.
I couldn't find the related paragraph in the ABI :-(
So you mean that the end-user is supposed to look at the LSB of a
function address to know if it's Arm or Thumb?
> I don't know about objdump though. Really, I'd like
> STT_ARM_TFUNC to just go away; if we want to support it for pre-ABI
> binaries we could do it on swap-in/swap-out, like we do for EABI at
> present.
>
>> Anyway, my original problem is that I am having a look at the mixed-app
>> test (arm-none-eabi or arm-gnueabi-linux), where I observe that lib_func2
>> is not of type STT_ARM_TFUNC, while I would expect
>> elf32_arm_swap_symbol_in to have set that flag. Using readelf on
>> mixed-lib.o says:
>> 10: 00000021 2 FUNC GLOBAL DEFAULT 1 lib_func2
>>
>> What's wrong?
>
> Not enough information to say - but I agree that it ought to be.
> Breakpoint on elf32_arm_swap_symbol_in and find out?
>
I made some progress: although marked STT_ARM_TFUNC in
elf32_arm_swap_symbol_in, it is turned to STT_FUNC in allocate_dynrelocs.
I have found that Thumb calls to ARM symbols are handled in
elf32_arm_final_link_relocate.
This brings me to another question: on several occasions I could see
that comment "Calls through the PLT do not require stubs". What type of
stubs do you mean here?
Indeed, I am working on PR/9743
http://sourceware.org/bugzilla/show_bug.cgi?id=9743, and it really seem
to be a case where a stub is needed to reach the PLT. Just to be sure we
are line.
Thanks
Christophe.
More information about the Binutils
mailing list