2000-03-24 Andreas Jaeger <aj@suse.de>
authorAndreas Jaeger <aj@suse.de>
Fri, 24 Mar 2000 15:27:37 +0000 (15:27 +0000)
committerAndreas Jaeger <aj@suse.de>
Fri, 24 Mar 2000 15:27:37 +0000 (15:27 +0000)
* sysdeps/mips/dl-machine.h (__dl_runtime_resolve): Use D_PTR to
access relocated entries in l_info.
(elf_machine_got_rel): Likewise.
(elf_machine_runtime_setup): Likewise.
* sysdeps/mips/mips64/dl-machine.h (elf_machine_got_rel): Likewise.
(elf_machine_runtime_setup): Likewise.
(__dl_runtime_resolve): Likewise.

sysdeps/mips/dl-machine.h
sysdeps/mips/mips64/dl-machine.h

index d0b20ae..188e9ae 100644 (file)
@@ -224,11 +224,11 @@ __dl_runtime_resolve (ElfW(Word) sym_index,                                     \
 {                                                                            \
   struct link_map *l = elf_machine_runtime_link_map (old_gpreg, stub_pc);     \
   const ElfW(Sym) *const symtab                                                      \
-    = (const void *) l->l_info[DT_SYMTAB]->d_un.d_ptr;                       \
+    = (const void *) D_PTR (l, l_info[DT_SYMTAB]);                           \
   const char *strtab                                                         \
-    = (const void *) l->l_info[DT_STRTAB]->d_un.d_ptr;                       \
+    = (const void *) D_PTR (l, l_info[DT_STRTAB]);                           \
   const ElfW(Addr) *got                                                              \
-    = (const ElfW(Addr) *) l->l_info[DT_PLTGOT]->d_un.d_ptr;                 \
+    = (const ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]);                     \
   const ElfW(Word) local_gotno                                               \
     = (const ElfW(Word)) l->l_info[DT_MIPS (LOCAL_GOTNO)]->d_un.d_val;       \
   const ElfW(Word) gotsym                                                    \
@@ -483,7 +483,7 @@ elf_machine_got_rel (struct link_map *map, int lazy)
   ElfW(Addr) *got;
   ElfW(Sym) *sym;
   int i, n;
-  const char *strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr;
+  const char *strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
 
 #define RESOLVE_GOTSYM(sym)                                            \
     ({                                                                 \
@@ -495,7 +495,7 @@ elf_machine_got_rel (struct link_map *map, int lazy)
       (ref)? sym_loadaddr + ref->st_value: 0;                          \
     })
 
-  got = (ElfW(Addr) *) map->l_info[DT_PLTGOT]->d_un.d_ptr;
+  got = (ElfW(Addr) *) D_PTR (map, l_info[DT_PLTGOT]);
 
   /* got[0] is reserved. got[1] is also reserved for the dynamic object
      generated by gnu ld. Skip these reserved entries from relocation.  */
@@ -507,7 +507,7 @@ elf_machine_got_rel (struct link_map *map, int lazy)
 
   /* Handle global got entries. */
   got += n;
-  sym = (void *) map->l_info[DT_SYMTAB]->d_un.d_ptr;
+  sym = (void *) D_PTR (map, l_info[DT_SYMTAB]);
   sym += map->l_info[DT_MIPS (GOTSYM)]->d_un.d_val;
   i = (map->l_info[DT_MIPS (SYMTABNO)]->d_un.d_val
        - map->l_info[DT_MIPS (GOTSYM)]->d_un.d_val);
@@ -566,7 +566,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
         Their initial contents will arrange when called to put an
         offset into the .dynsym section in t8, the return address
         in t7 and then jump to _GLOBAL_OFFSET_TABLE[0].  */
-      got = (ElfW(Addr) *) l->l_info[DT_PLTGOT]->d_un.d_ptr;
+      got = (ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]);
 
       /* This function will get called to fix up the GOT entry indicated by
         the register t8, and then jump to the resolved address.  */
index fe4667a..01f9a95 100644 (file)
@@ -137,7 +137,7 @@ elf_machine_got_rel (struct link_map *map, int lazy)
   ElfW(Addr) *got;
   ElfW(Sym) *sym;
   int i, n;
-  const char *strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr;
+  const char *strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
 
 #define RESOLVE_GOTSYM(sym) \
     ({ \
@@ -149,7 +149,7 @@ elf_machine_got_rel (struct link_map *map, int lazy)
       (ref)? sym_loadaddr + ref->st_value: 0; \
     })
 
-  got = (ElfW(Addr) *) map->l_info[DT_PLTGOT]->d_un.d_ptr;
+  got = (ElfW(Addr) *) D_PTR (map, l_info[DT_PLTGOT]);
 
   /* got[0] is reserved. got[1] is also reserved for the dynamic object
      generated by gnu ld. Skip these reserved entries from relocation.  */
@@ -161,7 +161,7 @@ elf_machine_got_rel (struct link_map *map, int lazy)
 
   /* Handle global got entries. */
   got += n;
-  sym = (ElfW(Sym) *) map->l_info[DT_SYMTAB]->d_un.d_ptr;
+  sym = (ElfW(Sym) *) D_PTR (map, l_info[DT_SYMTAB]);
   sym += map->l_info[DT_MIPS (GOTSYM)]->d_un.d_val;
   i = (map->l_info[DT_MIPS (SYMTABNO)]->d_un.d_val
        - map->l_info[DT_MIPS (GOTSYM)]->d_un.d_val);
@@ -224,7 +224,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
         Their initial contents will arrange when called to put an
         offset into the .dynsym section in t8, the return address
         in t7 and then jump to _GLOBAL_OFFSET_TABLE[0].  */
-      got = (ElfW(Addr) *) l->l_info[DT_PLTGOT]->d_un.d_ptr;
+      got = (ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]);
 
       /* This function will get called to fix up the GOT entry indicated by
         the register t8, and then jump to the resolved address.  */
@@ -337,10 +337,10 @@ __dl_runtime_resolve (ElfW(Word) sym_index,                                     \
 {                                                                            \
   struct link_map *l = elf_machine_runtime_link_map (old_gpreg, stub_pc);     \
   const ElfW(Sym) *const symtab                                                      \
-    = (const ElfW(Sym) *) l->l_info[DT_SYMTAB]->d_un.d_ptr;                  \
-  const char *strtab = (const void *) l->l_info[DT_STRTAB]->d_un.d_ptr;              \
+    = (const ElfW(Sym) *) D_PTR (l, l_info[DT_SYMTAB]);                              \
+  const char *strtab = (const void *) D_PTR (l, l_info[DT_STRTAB]);          \
   const ElfW(Addr) *got                                                              \
-    = (const ElfW(Addr) *) l->l_info[DT_PLTGOT]->d_un.d_ptr;                 \
+    = (const ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]);                     \
   const ElfW(Word) local_gotno                                               \
     = (const ElfW(Word)) l->l_info[DT_MIPS (LOCAL_GOTNO)]->d_un.d_val;       \
   const ElfW(Word) gotsym                                                    \