[PATCH v4 0/5] Add support for TLS Descriptors (TLSDESC)
Lulu Cai
cailulu@loongson.cn
Fri Dec 15 10:11:22 GMT 2023
v4 mainly adjusted the relaxation conditions of GD/LD/DESC:
1. It is possible to relax for undefined symbols.
2. Modified the pcaddi calculation method to calculate the
got address of the symbol instead of the actual address of the symbol.
Lulu Cai (4):
LoongArch: Add new relocs and macro for TLSDESC.
LoongArch: Add support for TLSDESC in ld.
LoongArch: Add tls transition support. Transitions between DESC->IE/LE
and IE->LE are supported now.
LoongArch: Add testsuit for DESC and tls transition and tls
relaxation.
mengqinggang (1):
LoongArch: TLS LD/GD/DESC relaxation
bfd/bfd-in2.h | 15 +
bfd/elfnn-loongarch.c | 555 ++++++++++++++++--
bfd/elfxx-loongarch.c | 265 ++++++++-
bfd/libbfd.h | 15 +
bfd/reloc.c | 36 ++
gas/config/tc-loongarch.c | 20 +-
gas/testsuite/gas/loongarch/macro_op.d | 128 ++--
gas/testsuite/gas/loongarch/macro_op_32.d | 120 ++--
.../gas/loongarch/macro_op_large_abs.d | 160 ++---
.../gas/loongarch/macro_op_large_pc.d | 160 ++---
gas/testsuite/gas/loongarch/tlsdesc_32.d | 28 +
gas/testsuite/gas/loongarch/tlsdesc_32.s | 12 +
gas/testsuite/gas/loongarch/tlsdesc_64.d | 28 +
gas/testsuite/gas/loongarch/tlsdesc_64.s | 12 +
.../gas/loongarch/tlsdesc_large_abs.d | 21 +
.../gas/loongarch/tlsdesc_large_abs.s | 9 +
.../gas/loongarch/tlsdesc_large_pc.d | 22 +
.../gas/loongarch/tlsdesc_large_pc.s | 13 +
include/elf/loongarch.h | 26 +-
include/opcode/loongarch.h | 6 +
ld/testsuite/ld-loongarch-elf/desc-ie.d | 16 +
ld/testsuite/ld-loongarch-elf/desc-ie.s | 18 +
ld/testsuite/ld-loongarch-elf/desc-le.d | 15 +
ld/testsuite/ld-loongarch-elf/desc-le.s | 14 +
ld/testsuite/ld-loongarch-elf/desc-norelax.d | 16 +
ld/testsuite/ld-loongarch-elf/desc-norelax.s | 5 +
ld/testsuite/ld-loongarch-elf/desc-relax.d | 15 +
ld/testsuite/ld-loongarch-elf/desc-relax.s | 5 +
ld/testsuite/ld-loongarch-elf/ie-le.d | 13 +
ld/testsuite/ld-loongarch-elf/ie-le.s | 11 +
.../ld-loongarch-elf/ld-loongarch-elf.exp | 9 +
ld/testsuite/ld-loongarch-elf/macro_op.d | 391 ++++++------
ld/testsuite/ld-loongarch-elf/macro_op_32.d | 120 ++--
ld/testsuite/ld-loongarch-elf/tlsdesc-dso.d | 56 ++
ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s | 66 +++
opcodes/loongarch-opc.c | 54 ++
36 files changed, 1907 insertions(+), 568 deletions(-)
create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_32.d
create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_32.s
create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_64.d
create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_64.s
create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_abs.d
create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_abs.s
create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_pc.d
create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_pc.s
create mode 100644 ld/testsuite/ld-loongarch-elf/desc-ie.d
create mode 100644 ld/testsuite/ld-loongarch-elf/desc-ie.s
create mode 100644 ld/testsuite/ld-loongarch-elf/desc-le.d
create mode 100644 ld/testsuite/ld-loongarch-elf/desc-le.s
create mode 100644 ld/testsuite/ld-loongarch-elf/desc-norelax.d
create mode 100644 ld/testsuite/ld-loongarch-elf/desc-norelax.s
create mode 100644 ld/testsuite/ld-loongarch-elf/desc-relax.d
create mode 100644 ld/testsuite/ld-loongarch-elf/desc-relax.s
create mode 100644 ld/testsuite/ld-loongarch-elf/ie-le.d
create mode 100644 ld/testsuite/ld-loongarch-elf/ie-le.s
create mode 100644 ld/testsuite/ld-loongarch-elf/tlsdesc-dso.d
create mode 100644 ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s
--
2.36.0
More information about the Binutils
mailing list