[AArch64] Only override the symbol dynamic decision on undefined weak symbol

Jiong Wang jiong.wang@foss.arm.com
Wed Jun 28 10:42:00 GMT 2017


On 22/06/17 16:24, Jiong Wang wrote:
> On 21/06/17 18:20, Christophe Lyon wrote:
but on
>> native builds I see:
>> ld/testsuite/ld-elf/indirect.exp ...
>> FAIL: Run indirect5 3
>> FAIL: Run indirect5 4
>> FAIL: indirect5c dynsym
>> FAIL: indirect5d dynsym
>
> I will look at them, PR 21402 on AArch64.

Here is the fix, it's an adaption of the x86-64 fix to AArch64.

After the generic code deciding one symbol is not dynamic, AArch64 backend
only overrides the decision on undefined weak symbols.

This patch fixed above failures, and there is no regression on:

cross/native check-gas/ld/binutils/gcc/g++

This patch is based on top of the prerequisite patch posted at (wait approval):

https://sourceware.org/ml/binutils/2017-06/msg00315.html

OK for master?

bfd/
2017-06-28  Jiong Wang  <jiong.wang@arm.com>

         PR ld/21402
         * elfnn-aarch64.c (elfNN_aarch64_allocate_dynrelocs): Only make
         undefined weak symbols into dynamic.
         (elfNN_aarch64_final_link_relocate): Generate runtime RELATIVE
         relocation for non-dynamic symbols.
         (elfNN_aarch64_finish_dynamic_symbol): Add sanity check.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix.patch
Type: text/x-patch
Size: 6124 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20170628/14a71bbb/attachment.bin>


More information about the Binutils mailing list