[PATCH 0/4] RISC-V: Implement TLS Descriptors.
Fangrui Song
i@maskray.me
Fri Aug 18 07:13:24 GMT 2023
On Thu, Aug 17, 2023 at 5:22 PM Nelson Chu <nelson@rivosinc.com> wrote:
>
> Hi,
>
> Before the reviewing, I think you still should have test cases for each
> patch to make sure everything is correct in the binutils, and helps people
> understand what the patches try to resolve what problem or support what
> features. In general, the regressions in binutils, gcc and glibc are
> seperate. Besides, each patch should at least have the ChangLogs in the
> commit message.
>
> Thanks
> Nelson
A relocatable object file can contain both TLSDESC and TLS GD
relocations (e.g. relocatable output).
The GOT use cases are different. It will be nice to have such a test.
We need tests for at least (a) -shared and (b) -no-pie or -pie (I
prefer just -no-pie).
Perhaps you have done this (as the glibc patch suggests), but I want
to make sure that the GOT entries are placed in .rela.dyn, not
.rela.plt
(https://sourceware.org/bugzilla/show_bug.cgi?id=28387 ld: Move
R_*_TLSDESC to .rela.dyn)
sysdeps/{aarch64,x86_64}/dl-machine.h unfortunately have to handle
TLSDESC in elf_machine_lazy_rel for compatibility.
> [PATCH 4/4] RISC-V: Initial ld.bfd support for TLSDESC.
> + /* TLSDESC needs one dynamic reloc and four GOT slots. *
Why is there 4? Other ports reserve 2 GOT slots for one symbol.
> On Fri, Aug 18, 2023 at 2:10 AM Tatsuyuki Ishi via Binutils <
> binutils@sourceware.org> wrote:
>
> > This patchset implements TLS Descriptors (TLSDESC) for RISC-V targets, per
> > the specification draft at [1].
> >
> > This patchset is based on top of [2].
> >
> > No regression in binutils and gcc tests for rv64gc, tested alongside the
> > gcc and glibc implementation (will be posted shortly).
> >
> > 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
> > [2]: https://sourceware.org/pipermail/binutils/2023-August/129075.html
> >
> > Tatsuyuki Ishi (4):
> > 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 | 105 ++++++++++++++++++---
> > bfd/elfxx-riscv.c | 75 ++++++++++++++-
> > bfd/libbfd.h | 4 +
> > bfd/reloc.c | 8 ++
> > gas/config/tc-riscv.c | 18 +++-
> > include/elf/riscv.h | 5 +
> >
>
>
> > ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp | 2 +
> >
>
> This doesn't work, seems still not adding any test cases.
>
>
> > opcodes/riscv-opc.c | 1 +
> > 9 files changed, 201 insertions(+), 21 deletions(-)
> >
> > --
> > 2.41.0
> >
> >
More information about the Binutils
mailing list