This is the mail archive of the
mailing list for the binutils project.
Re: [PATCH] gold/arm: define $a/$d markers in .plt
David Miller <email@example.com> writes:
> From: Ian Lance Taylor <firstname.lastname@example.org>
> Date: Wed, 25 Apr 2012 12:07:49 -0700
>> Symbols with hidden and internal visibility are forced to STB_LOCAL in a
>> final link, but not protected symbols. Gold does that because that is
>> what the ELF ABI specifies should happen.
> Sorry, this is indeed the case I was talking about.
> While working on IFUNC I compared various test cases side by side
> and the BFD linker didn't make this transformation.
If you go to http://sco.com/developers/gabi/latest/ch4.symtab.html and
search for STV_HIDDEN you will find this sentence:
A hidden symbol contained in a relocatable object must be either
removed or converted to STB_LOCAL binding by the link-editor when
the relocatable object is included in an executable file or shared
There is a similar sentence for STV_INTERNAL.
This seems to make sense in general, in that at runtime one shared
library can not refer to a hidden or internal symbol defined in a
different shared library. I can see how it matters for SPARC, but it
still seems more or less like the right thing to do.