aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/ldsodefs.h15
-rw-r--r--sysdeps/i386/dl-machine.h7
2 files changed, 5 insertions, 17 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 5e093fc..6d196c7 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -327,21 +327,6 @@ extern void _dl_map_object_deps (struct link_map *map,
/* Cache the locations of MAP's hash table. */
extern void _dl_setup_hash (struct link_map *map) internal_function;
-/* This holds symbol lookup cache. */
-struct lookup_cache
- {
- const ElfW(Sym) *sym;
- struct link_map *map;
- const struct r_found_version *version;
- int noexec;
- int noplt;
- lookup_t value;
- const ElfW(Sym) *ret;
- };
-
-extern struct lookup_cache _dl_lookup_cache;
-extern struct lookup_cache _dl_lookup_cache_versioned;
-
/* Search loaded objects' symbol tables for a definition of the symbol
referred to by UNDEF. *SYM is the symbol table entry containing the
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
index 53d8022..e7a1b10 100644
--- a/sysdeps/i386/dl-machine.h
+++ b/sysdeps/i386/dl-machine.h
@@ -334,13 +334,16 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
if (sym)
value += sym->st_value;
+#ifdef RTLD_BOOTSTRAP
+ assert (r_type == R_386_GLOB_DAT || r_type == R_386_JMP_SLOT);
+ *reloc_addr = value;
+#else
switch (r_type)
{
case R_386_GLOB_DAT:
case R_386_JMP_SLOT:
*reloc_addr = value;
break;
-#ifndef RTLD_BOOTSTRAP
case R_386_32:
*reloc_addr += value;
break;
@@ -372,8 +375,8 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
if we are still debugging. */
_dl_reloc_bad_type (map, r_type, 0);
break;
-#endif
}
+#endif
}
}