[Bug dynamic-link/31317] New: [RISCV] static PIE crashes during self relocation
schwab@linux-m68k.org
sourceware-bugzilla@sourceware.org
Tue Jan 30 13:25:27 GMT 2024
https://sourceware.org/bugzilla/show_bug.cgi?id=31317
Bug ID: 31317
Summary: [RISCV] static PIE crashes during self relocation
Product: glibc
Version: 2.39
Status: NEW
Severity: normal
Priority: P2
Component: dynamic-link
Assignee: unassigned at sourceware dot org
Reporter: schwab@linux-m68k.org
Target Milestone: ---
When running a static PIE created by the mold linker, it crashes during self
relocation while it tries to look up the __global_pointer$ symbols. That
happens because the mold linker puts the relocation addend of a RELATIVE also
in the relocated field (unlike the BFD linker, which sets it to zero).
>From sysdeps/riscv/dl-machine.h:
if (l->l_type == lt_executable && l->l_scope != NULL)
In elf_machine_runtime_setup the condition l->l_scope != NULL references an
unrelocated pointer (where l points to the statically initialized _dl_main_map)
which is never NULL in a static PIE produced by ld.mold.
The failure can be seen in the mold testsuite (riscv64-ifunc-static-pie and
riscv64-static-pie).
https://build.opensuse.org/package/live_build_log/devel:gcc:next/mold/openSUSE_Factory_RISCV/riscv64
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Glibc-bugs
mailing list