[PATCH 0/2] riscv: add support for GNU indirect function

Jim Wilson jimw@sifive.com
Wed Dec 2 02:52:48 GMT 2020


On Tue, Dec 1, 2020 at 2:23 AM Vincent Chen <vincent.chen@sifive.com> wrote:

> In addition, since the dynamic linker resolves the IRELATIVE relocation
> before jumping into the executable program, the $gp register has not
> been initialized when the IFUNC resolver function is executed. It cause
> that some unexpected error may occur when the dynamic loader resolves the
> IREALTIVE relocation of the position-dependent executable program. To
> solve this problem, a new RISCV specific dynamic entry, DT_RISCV_GP,
> created by Binutils is used to record the gp address. The dynamic
> linker can use it to initialize $gp register before resolving the
> IREALTIVE relocation of the PDE program.
>

We should discuss DT_RISCV_GP with RISC-V International since we don't own
the ISA.  I opened a psabi issue.
    https://github.com/riscv/riscv-elf-psabi-doc/issues/165
The llvm/lld and FreeBSD developers also care about this stuff.

Jim


More information about the Libc-alpha mailing list