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

Cary Coutant ccoutant@google.com
Wed Apr 25 20:54:00 GMT 2012


> I will say in passing that this made things confusing for me from a
> gold target's perspective.  It seemd to me that the whole point of
> having seperate global and local Scan methods is that relocations are
> processed differently for STB_LOCAL vs. STB_GLOBAL symbols.
>
> So, from this perspective, this forced local case adds at least a
> small wrinkle.  Imagine my surprise while debugging that a gsym seen
> in global relocation scanning ended up STB_LOCAL in the final symbol
> table :-)

I think you're conflating local to a relocatable object with local to
a load module. The downgrading of internal and hidden STB_GLOBAL
symbols to STB_LOCAL happens at the very end, so the symbols are
treated as local only by the dynamic loader. In every other respect,
the linker treats such symbols as global.

A forced-local symbol is handled by the global Scan method, as it's
still a global symbol across the set of relocatable objects being
linked.

-cary



More information about the Binutils mailing list