This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] gold/arm: define $a/$d markers in .plt


David Miller <davem@davemloft.net> writes:

> From: Ian Lance Taylor <iant@google.com>
> 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
    object.

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.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]