[AArch64][0/6] More TLS local dynamic relocation support

Jiong Wang jiong.wang@arm.com
Wed Aug 19 12:32:00 GMT 2015


This patch set add more TLS local dynamic relocation support for
AArch64, for more details, please check AArch64 ELF specification.

As support of dtprel_hi12  is included, PR ld/18276 will be fixed.

Asssembler and linker testcases for these new supported relocation types
included also.

Pass assembler and linker testsuite on both aarch64-linux and aarch64-elf
cross environment.

OK for trunk?
Thanks.

Jiong Wang (6):
   GAS support BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
   LD support BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
   GAS support TLSLD move/add relocation types
   LD support TLSLD move/add relocation types
   GAS support TLSLD load/store relocation types
   LD support TLSLD load/store relocation types

  bfd/bfd-in2.h                                           |  57 +++
  bfd/elfnn-aarch64.c                                     | 255 ++++++++++
  bfd/elfxx-aarch64.c                                     |  30 ++
  bfd/libbfd.h                                            |  17 +
  bfd/reloc.c                                             |  75 ++-
  gas/config/tc-aarch64.c                                 | 146 +++++-
  gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d       |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.s       |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g0.d             |   9 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g0.s             |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d    |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.s    |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d          |   9 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.s          |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d       |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.s       |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g1.d             |   9 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g1.s             |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d          |   9 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.s          |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g2.d             |   9 +
  gas/testsuite/gas/aarch64/reloc-dtprel_g2.s             |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d     |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.s     |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d           |   9 +
  gas/testsuite/gas/aarch64/reloc-dtprel_hi12.s           |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d    |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.s    |   6 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d    |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.s    |   6 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d    |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.s    |   6 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d     |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.s     |   6 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d  |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.s  |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.s |   5 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.s |   6 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.s |   6 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d  |  10 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.s  |   6 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d        |   9 +
  gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.s        |   5 +
  include/elf/aarch64.h                                   |   5 +
  ld/testsuite/ld-aarch64/aarch64-elf.exp                 |  28 +
  ld/testsuite/ld-aarch64/emit-relocs-523.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-523.s               |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-524.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-524.s               |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-525.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-525.s               |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-526-overflow.d      |   4 +
  ld/testsuite/ld-aarch64/emit-relocs-526-overflow.s      |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-526.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-526.s               |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-527.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-527.s               |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-528-overflow.d      |   4 +
  ld/testsuite/ld-aarch64/emit-relocs-528-overflow.s      |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-528.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-528.s               |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-530.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-530.s               |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-531-overflow.d      |   4 +
  ld/testsuite/ld-aarch64/emit-relocs-531-overflow.s      |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-531.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-531.s               |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-532.d               |   9 +
  ld/testsuite/ld-aarch64/emit-relocs-532.s               |  17 +
  ld/testsuite/ld-aarch64/emit-relocs-533-overflow.d      |   4 +
  ld/testsuite/ld-aarch64/emit-relocs-533-overflow.s      |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-533.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-533.s               |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-534.d               |   9 +
  ld/testsuite/ld-aarch64/emit-relocs-534.s               |  17 +
  ld/testsuite/ld-aarch64/emit-relocs-535-overflow.d      |   4 +
  ld/testsuite/ld-aarch64/emit-relocs-535-overflow.s      |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-535.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-535.s               |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-536.d               |   9 +
  ld/testsuite/ld-aarch64/emit-relocs-536.s               |  17 +
  ld/testsuite/ld-aarch64/emit-relocs-537-overflow.d      |   4 +
  ld/testsuite/ld-aarch64/emit-relocs-537-overflow.s      |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-537.d               |   7 +
  ld/testsuite/ld-aarch64/emit-relocs-537.s               |  12 +
  ld/testsuite/ld-aarch64/emit-relocs-538.d               |   9 +
  ld/testsuite/ld-aarch64/emit-relocs-538.s               |  19 +
  ld/testsuite/ld-aarch64/emit-relocs-87.d                |   8 +
  ld/testsuite/ld-aarch64/emit-relocs-87.s                |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-88-overflow.d       |   5 +
  ld/testsuite/ld-aarch64/emit-relocs-88-overflow.s       |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-88.d                |   8 +
  ld/testsuite/ld-aarch64/emit-relocs-88.s                |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-89.d                |   8 +
  ld/testsuite/ld-aarch64/emit-relocs-89.s                |  10 +
  ld/testsuite/ld-aarch64/emit-relocs-90-overflow.d       |   5 +
  ld/testsuite/ld-aarch64/emit-relocs-90-overflow.s       |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-90.d                |   8 +
  ld/testsuite/ld-aarch64/emit-relocs-90.s                |  11 +
  ld/testsuite/ld-aarch64/emit-relocs-92.d                |   8 +
  ld/testsuite/ld-aarch64/emit-relocs-92.s                |  10 +
  104 files changed, 1414 insertions(+), 9 deletions(-)

-- 
Regards,
Jiong



More information about the Binutils mailing list