From 680254fe22215c1f41f247d085c5cac5783b73f5 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 26 Aug 2001 10:50:26 +0000 Subject: Update. * include/link.h (struct link_map): Add l_lookup_cache element. * elf/dl-reloc.c (RESOLVE): Add symbol caching here. (RESOLVE_MAP): Likewise. (_dl_relocate_object): Remove cache initialization. * elf/dl-lookup.c: Rip out cache handling code. * sysdeps/generic/ldsodefs.h: Remove lookup_cache struct and variable declarations. * elf/dl-lookup.c (_dl_lookup_symbol): Reorder some conditions and remove some __builtin_expect. (_dl_lookup_versioned_symbol): Likewise. R_386_RELATIVE handling for ld.so startup. Reduce RTLD_BOOTSTRAP case to almost no code. --- sysdeps/i386/dl-machine.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'sysdeps/i386') diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index 53d802203a..e7a1b104ef 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 } } -- cgit v1.2.3