aboutsummaryrefslogtreecommitdiff
path: root/libexec/rtld-elf/rtld.c
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/rtld-elf/rtld.c')
-rw-r--r--libexec/rtld-elf/rtld.c15
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);