libphobos: Fix executables segfault on mipsel architecture
The dynamic section on MIPS is read-only, but this was not properly handled in the runtime library. The segfault only occurred for programs that linked to the shared libphobos library. libphobos/ChangeLog: PR d/98806 * libdruntime/gcc/sections/elf_shared.d (MIPS_Any): Declare version for MIPS32 and MIPS64. (getDependencies): Adjust dlpi_addr on MIPS_Any.
This commit is contained in:
parent
7e0f147a29
commit
81f928ec8e
1 changed files with 4 additions and 0 deletions
|
@ -22,6 +22,8 @@
|
|||
|
||||
module gcc.sections.elf_shared;
|
||||
|
||||
version (MIPS32) version = MIPS_Any;
|
||||
version (MIPS64) version = MIPS_Any;
|
||||
version (RISCV32) version = RISCV_Any;
|
||||
version (RISCV64) version = RISCV_Any;
|
||||
version (S390) version = IBMZ_Any;
|
||||
|
@ -763,6 +765,8 @@ version (Shared)
|
|||
// in glibc: #define DL_RO_DYN_SECTION 1
|
||||
version (RISCV_Any)
|
||||
strtab = cast(const(char)*)(info.dlpi_addr + dyn.d_un.d_ptr); // relocate
|
||||
else version (MIPS_Any)
|
||||
strtab = cast(const(char)*)(info.dlpi_addr + dyn.d_un.d_ptr); // relocate
|
||||
else
|
||||
strtab = cast(const(char)*)dyn.d_un.d_ptr;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue