(ELF_MACHINE_NO_PLT): New defined macro.
authorUlrich Drepper <drepper@redhat.com>
Thu, 26 Nov 1998 12:01:21 +0000 (12:01 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 26 Nov 1998 12:01:21 +0000 (12:01 +0000)
(elf_machine_got_rel): Remove scope variable.  Use scope from the map.
Don't modify _dl_global_scope_end in the end.
(__dl_runtime_resolv): Also use scope from the map.

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

index bbd22d8..5f6e127 100644 (file)
@@ -23,6 +23,8 @@
 
 #define ELF_MACHINE_NAME "MIPS"
 
+#define ELF_MACHINE_NO_PLT 
+
 #include <assert.h>
 #include <entry.h>
 
@@ -142,7 +144,6 @@ elf_machine_got_rel (struct link_map *map, int lazy)
   ElfW(Addr) *got;
   ElfW(Sym) *sym;
   int i, n;
-  struct link_map **scope;
   const char *strtab
     = ((void *) map->l_addr + map->l_info[DT_STRTAB]->d_un.d_ptr);
 
@@ -150,7 +151,8 @@ elf_machine_got_rel (struct link_map *map, int lazy)
     ({ \
       const ElfW(Sym) *ref = sym; \
       ElfW(Addr) sym_loadaddr; \
-      sym_loadaddr = _dl_lookup_symbol (strtab + sym->st_name, &ref, scope, \
+      sym_loadaddr = _dl_lookup_symbol (strtab + sym->st_name, &ref, \
+                                       map->l_scope, \
                                        map->l_name, ELF_MACHINE_RELOC_NOPLT);\
       (ref)? sym_loadaddr + ref->st_value: 0; \
     })
@@ -166,9 +168,6 @@ elf_machine_got_rel (struct link_map *map, int lazy)
   while (i < n)
     got[i++] += map->l_addr;
 
-  /* Set scope.  */
-  scope = _dl_object_relocation_scope (map);
-
   /* Handle global got entries. */
   got += n;
   sym = (ElfW(Sym) *) ((void *) map->l_addr
@@ -210,7 +209,6 @@ elf_machine_got_rel (struct link_map *map, int lazy)
     }
 
 #undef RESOLVE_GOTSYM
-  *_dl_global_scope_end = NULL;
 
   return;
 }
@@ -362,16 +360,13 @@ __dl_runtime_resolve (ElfW(Word) sym_index,                                     \
   const ElfW(Sym) *definer;                                                  \
   ElfW(Addr) loadbase;                                                       \
   ElfW(Addr) funcaddr;                                                       \
-  struct link_map **scope;                                                   \
                                                                              \
   /* Look up the symbol's run-time value.  */                                \
-  scope = _dl_object_relocation_scope (l);                                   \
   definer = &symtab[sym_index];                                                      \
                                                                              \
   loadbase = _dl_lookup_symbol (strtab + definer->st_name, &definer,         \
-                               scope, l->l_name, ELF_MACHINE_RELOC_NOPLT);   \
-                                                                             \
-  *_dl_global_scope_end = NULL;                                                      \
+                               l->l_scope, l->l_name,                        \
+                               ELF_MACHINE_RELOC_NOPLT);                     \
                                                                              \
   /* Apply the relocation with that value.  */                               \
   funcaddr = loadbase + definer->st_value;                                   \
index 76981a6..1045da1 100644 (file)
@@ -23,6 +23,8 @@
 
 #define ELF_MACHINE_NAME "MIPS"
 
+#define ELF_MACHINE_NO_PLT 
+
 #include <assert.h>
 #include <entry.h>
 
@@ -142,7 +144,6 @@ elf_machine_got_rel (struct link_map *map, int lazy)
   ElfW(Addr) *got;
   ElfW(Sym) *sym;
   int i, n;
-  struct link_map **scope;
   const char *strtab
     = ((void *) map->l_addr + map->l_info[DT_STRTAB]->d_un.d_ptr);
 
@@ -150,7 +151,8 @@ elf_machine_got_rel (struct link_map *map, int lazy)
     ({ \
       const ElfW(Sym) *ref = sym; \
       ElfW(Addr) sym_loadaddr; \
-      sym_loadaddr = _dl_lookup_symbol (strtab + sym->st_name, &ref, scope, \
+      sym_loadaddr = _dl_lookup_symbol (strtab + sym->st_name, &ref, \
+                                       map->l_scope, \
                                        map->l_name, ELF_MACHINE_RELOC_NOPLT);\
       (ref)? sym_loadaddr + ref->st_value: 0; \
     })
@@ -166,9 +168,6 @@ elf_machine_got_rel (struct link_map *map, int lazy)
   while (i < n)
     got[i++] += map->l_addr;
 
-  /* Set scope.  */
-  scope = _dl_object_relocation_scope (map);
-
   /* Handle global got entries. */
   got += n;
   sym = (ElfW(Sym) *) ((void *) map->l_addr
@@ -210,7 +209,6 @@ elf_machine_got_rel (struct link_map *map, int lazy)
     }
 
 #undef RESOLVE_GOTSYM
-  *_dl_global_scope_end = NULL;
 
   return;
 }
@@ -362,16 +360,13 @@ __dl_runtime_resolve (ElfW(Word) sym_index,                                     \
   const ElfW(Sym) *definer;                                                  \
   ElfW(Addr) loadbase;                                                       \
   ElfW(Addr) funcaddr;                                                       \
-  struct link_map **scope;                                                   \
                                                                              \
   /* Look up the symbol's run-time value.  */                                \
-  scope = _dl_object_relocation_scope (l);                                   \
   definer = &symtab[sym_index];                                                      \
                                                                              \
   loadbase = _dl_lookup_symbol (strtab + definer->st_name, &definer,         \
-                               scope, l->l_name, ELF_MACHINE_RELOC_NOPLT);   \
-                                                                             \
-  *_dl_global_scope_end = NULL;                                                      \
+                               l->l_scope, l->l_name,                        \
+                               ELF_MACHINE_RELOC_NOPLT);                     \
                                                                              \
   /* Apply the relocation with that value.  */                               \
   funcaddr = loadbase + definer->st_value;                                   \