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: Allow copy relocations with pie links


On Wed, May 7, 2014 at 4:46 PM, Cary Coutant <ccoutant@google.com> wrote:
>> * 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.

All changes done and new patch attached.  Tested *only* for x86_64.
Appreciate help in testing  other targets.


* symtab.h (may_need_copy_reloc): Remove check for position independent
code.
* x86_64.cc (Target_x86_64<size>::Scan::global): Add check for no
position independence before pc absolute may_need_copy_reloc call.
Add check for executable output befor pc relative may_need_copy_reloc
call.
* i386.cc: Ditto.
* arm.cc: Ditto.
* sparc.cc: Ditto.
* powerpc.cc: Ditto.
* tilegx.cc: Ditto.
* testsuite/pie_copyrelocs_test.cc: New file.
* testsuite/pie_copyrelocs_shared_test.cc: New file.
* Makefile.am (pie_copyrelocs_test): New test.
* Makefile.in: Regenerate.


Thanks
Sri

>
> Thanks!
>
> -cary

Attachment: gold_pie_patch.txt
Description: Text document


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