[15/16][binutils][AARCH64]Add relocation support for large memory model. [LD]Add TLSDESC support.

Renlin Li renlin.li@arm.com
Tue Sep 15 13:44:00 GMT 2015


Hi all,

This patch adds the missing TLSDESC support for large memory model.

Basically, the following four relocation symbols are supported.

AARCH64_TLSDESC_OFF_G1
AARCH64_TLSDESC_OFF_G0_NC
AARCH64_TLSDESC_ADD
AARCH64_TLSDESC_LDR

Those four symbols are already defined, but not supported. This patch 
add the LD support. A testcase is also provided.

Binutils regression test Okay. Okay to commit?


bfd/ChangeLog:

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

     * elfnn-aarch64.c (aarch64_tls_transition_without_check):  Add
     relax transitions for TLSDESC_ADD, TLSDESC_LDR, TLSDESC_OFF_G0_NC,
     TLSDESC_OFF_G1.
     (aarch64_tls_transition_without_check): Add relaxation support.
     (aarch64_reloc_got_type): Add support.
     (elfNN_aarch64_final_link_relocate): Likewise.
     (elfNN_aarch64_tls_relax): 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-15  Renlin Li <renlin.li@arm.com>

     * ld-aarch64/aarch64-elf.exp: Run new test.
     * ld-aarch64/tls-large-desc.d: New.
     * ld-aarch64/tls-large-desc.s: New.
     * ld-aarch64/tls-relax-large-desc-ie.d: New.
     * ld-aarch64/tls-relax-large-desc-ie.s: New.
     * ld-aarch64/tls-relax-large-desc-le.d: New.
     * ld-aarch64/tls-relax-large-desc-le.s: New.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0015-LD-tlsdesc-large.patch
Type: text/x-patch
Size: 14664 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20150915/04838ddc/attachment.bin>


More information about the Binutils mailing list