diff options
Diffstat (limited to 'libexec/rtld-elf/rtld.c')
-rw-r--r-- | libexec/rtld-elf/rtld.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index 5743bbdd6f61..ef34a9d36bc3 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -1520,18 +1520,6 @@ digest_dynamic1(Obj_Entry *obj, int early, const Elf_Dyn **dyn_rpath, obj->static_tls = true; break; -#ifdef __powerpc__ -#ifdef __powerpc64__ - case DT_PPC64_GLINK: - obj->glink = (Elf_Addr)(obj->relocbase + dynp->d_un.d_ptr); - break; -#else - case DT_PPC_GOT: - obj->gotptr = (Elf_Addr *)(obj->relocbase + dynp->d_un.d_ptr); - break; -#endif -#endif - case DT_FLAGS_1: if (dynp->d_un.d_val & DF_1_NOOPEN) obj->z_noopen = true; @@ -1554,6 +1542,9 @@ digest_dynamic1(Obj_Entry *obj, int early, const Elf_Dyn **dyn_rpath, break; default: + if (arch_digest_dynamic(obj, dynp)) + break; + if (!early) { dbg("Ignoring d_tag %ld = %#lx", (long)dynp->d_tag, (long)dynp->d_tag); |