diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 15 | ||||
-rw-r--r-- | sysdeps/i386/dl-machine.h | 7 |
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 } } |