Index: head/libexec/rtld-elf/rtld.c =================================================================== --- head/libexec/rtld-elf/rtld.c +++ head/libexec/rtld-elf/rtld.c @@ -1264,6 +1264,13 @@ *((Elf_Addr *)(dynp->d_un.d_ptr)) = (Elf_Addr) &r_debug; break; + case DT_MIPS_RLD_MAP_REL: + // The MIPS_RLD_MAP_REL tag stores the offset to the .rld_map + // section relative to the address of the tag itself. + *((Elf_Addr *)(__DECONST(char*, dynp) + dynp->d_un.d_val)) = + (Elf_Addr) &r_debug; + break; + case DT_MIPS_PLTGOT: obj->mips_pltgot = (Elf_Addr *)(obj->relocbase + dynp->d_un.d_ptr); Index: head/sys/sys/elf_common.h =================================================================== --- head/sys/sys/elf_common.h +++ head/sys/sys/elf_common.h @@ -707,6 +707,7 @@ #define DT_MIPS_PLTGOT 0x70000032 #define DT_MIPS_RLD_OBJ_UPDATE 0x70000033 #define DT_MIPS_RWPLT 0x70000034 +#define DT_MIPS_RLD_MAP_REL 0x70000035 #define DT_PPC_GOT 0x70000000 #define DT_PPC_TLSOPT 0x70000001