Allow copy relocations with pie links
Cary Coutant
ccoutant@google.com
Wed May 7 23:46:00 GMT 2014
> * symtab.h (may_need_copy_reloc): Extra default parameter to
> indicate if this is a PC relative relocation.
In the PC-rel case, you need to check for output_is_executable. With
your patch, we will now allow copy relocs for pc-relative relocations
even in shared libraries.
I'd prefer to move the check for output format to the points of call;
there are two calls in each target, one for pc-relative relocs, and
one for absolute relocs. For the absolute reloc, use:
if (!parameters->options().output_is_position_independent()
&& gsym->may_need_copy_reloc())
For the pc-relative reloc, use:
if (parameters->options().output_is_executable()
&& gsym->may_need_copy_reloc())
> * x86_64.cc (Target_x86_64<size>::Scan::global): Call
> may_need_copy_reloc with parameter set to true.
Please update the other targets, too.
Thanks!
-cary
More information about the Binutils
mailing list