Preventing preemption of 'protected' symbols in GNU ld 2.26
Alan Modra
amodra@gmail.com
Sat Apr 2 02:53:00 GMT 2016
On Fri, Apr 01, 2016 at 01:51:33PM -0600, Jeff Law wrote:
> Essentially the question that needs to be answered is if we roll
> back 65280, do we need to also roll back 65780?
No, I don't think so. As I wrote in the bugzilla (paraphrased)
What's going on here is that HJ has made changes to the linker for x86
to always copy variables defined in a shared library and referenced by
the executable, into the executable's .dynbss. This is necessary to
support non-PIC without text relocations, but is optional for PIEs.
If you do this for PIEs and gain some performance without affecting
shared library performance, and that is the case for x86_64, then the
optimisation is quite reasonable. I think powerpc64 would gain too,
but I haven't done anything about it yet (and for powerpc64 we should
be able to implement it entirely in the linker, no gcc changes
needed).
I believe common variables can be treated like any other variable so
far as this optimisation goes.
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list