Excerpts from Iain Buclaw's message of January 23, 2021 2:36 am: > > So the crux of the matter is that on MIPS, dynamic sections are read-only > (glibc sets DL_RO_DYN_SECTION 1), which requires special handling when pulling > data from dl_phdr_info. > > Re-running with the attached patch applied. > > Iain. > > --- a/libphobos/libdruntime/gcc/sections/elf_shared.d > +++ b/libphobos/libdruntime/gcc/sections/elf_shared.d > @@ -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; > } > >
It's halfway through now, and confirm that I see no more failures in the testsuite, so I'm fairly confident that everything should be OK now, though I'll try building your package later. In case I don't get round to doing it myself this weekend, could a PR be raised in gcc bugzilla about it? This so I can reference it in backports to gdc-10 and gdc-9. Regards, Iain.