[10/16][binutils][AARCH64]Add relocation support for large memory model. [LD]Add BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC support.

Renlin Li renlin.li@arm.com
Tue Sep 8 17:53:00 GMT 2015


Hi all,

This patch adds BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC to binutils linker.

The following code sequence should be generated to access TLS variable 
in General Dynamic TLS Model.


     movz a0, #:tlsgd_g1:x             R_AARCH64_TLSGD_MOVW_G1
     movk a0, #:tlsgd_g0_nc:x       R_AARCH64_TLSGD_MOVW_G0_NC
     add  a0, gp, a0
     bl   __tls_get_addr                   R_AARCH64_CALL26
     nop

Binutils and ld regression test done without new failures. Okay to commit?

Regards,
Renlin


bfd/ChangeLog:

2015-09-08  Renlin Li <renlin.li@arm.com>

     * elfnn-aarch64.c (aarch64_reloc_got_type): Add
         BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC support.
     (elfNN_aarch64_final_link_relocate): Likewise.
     (elfNN_aarch64_relocate_section): Likewise.
     (elfNN_aarch64_gc_sweep_hook): Likewise.
     (elfNN_aarch64_check_relocs): Likewise.
     * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
     (_bfd_aarch64_elf_resolve_relocation): Likewise.

ld/testsuite/ChangeLog:

2015-09-08  Renlin Li <renlin.li@arm.com>

     * ld-aarch64/emit-relocs-516.d: New.
     * ld-aarch64/emit-relocs-516.s: New.
     * ld-aarch64/aarch64-elf.exp: Run new test.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0010-LD-R_AARCH64_TLSGD_MOVW_G0_NC.patch
Type: text/x-patch
Size: 5136 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20150908/2293154d/attachment.bin>


More information about the Binutils mailing list