[v2,0/5] RISC-V: Implement TLS Descriptors.

Message ID 20230831171345.49052-1-ishitatsuyuki@gmail.com
Headers
Series RISC-V: Implement TLS Descriptors. |

Message

Tatsuyuki Ishi Aug. 31, 2023, 5:13 p.m. UTC
  This patchset implements TLS Descriptors (TLSDESC) for RISC-V targets, per
the specification draft at [1].

No regression (& passing new tests) in binutils, tested for rv64gc.

This contribution is made on behalf of Blue Whale Systems, which has
copyright assignment on file with the FSF.

[1]: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/373

v2: Add changelogs and tests. Minor fixes described in patch messages.

Tatsuyuki Ishi (5):
  RISC-V: Fix local GOT and reloc size calculation for TLS.
  RISC-V: Add TLSDESC reloc definitions.
  RISC-V: Add assembly support for TLSDESC.
  RISC-V: Define and use GOT entry size constants for TLS.
  RISC-V: Initial ld.bfd support for TLSDESC.

 bfd/bfd-in2.h                              |   4 +
 bfd/elfnn-riscv.c                          | 124 ++++++++++++++++++---
 bfd/elfxx-riscv.c                          |  75 ++++++++++++-
 bfd/libbfd.h                               |   4 +
 bfd/reloc.c                                |   8 ++
 gas/config/tc-riscv.c                      |  18 ++-
 gas/testsuite/gas/riscv/tlsdesc.d          |  22 ++++
 gas/testsuite/gas/riscv/tlsdesc.s          |  24 ++++
 include/elf/riscv.h                        |   5 +
 ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp |   8 ++
 ld/testsuite/ld-riscv-elf/tls.d            |  17 +++
 ld/testsuite/ld-riscv-elf/tls.s            |  42 +++++++
 ld/testsuite/ld-riscv-elf/tlsbin.d         |  12 ++
 ld/testsuite/ld-riscv-elf/tlslib.s         |   6 +
 opcodes/riscv-opc.c                        |   1 +
 15 files changed, 347 insertions(+), 23 deletions(-)
 create mode 100644 gas/testsuite/gas/riscv/tlsdesc.d
 create mode 100644 gas/testsuite/gas/riscv/tlsdesc.s
 create mode 100644 ld/testsuite/ld-riscv-elf/tls.d
 create mode 100644 ld/testsuite/ld-riscv-elf/tls.s
 create mode 100644 ld/testsuite/ld-riscv-elf/tlsbin.d
 create mode 100644 ld/testsuite/ld-riscv-elf/tlslib.s