diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-08-26 10:50:26 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-08-26 10:50:26 +0000 |
commit | 680254fe22215c1f41f247d085c5cac5783b73f5 (patch) | |
tree | b91211374166ef246d63137e39f7e1968cfb53c8 /sysdeps/i386 | |
parent | a711b01d34ca5de9857ca5d19235812674fccee6 (diff) | |
download | glibc-680254fe22215c1f41f247d085c5cac5783b73f5.tar glibc-680254fe22215c1f41f247d085c5cac5783b73f5.tar.gz glibc-680254fe22215c1f41f247d085c5cac5783b73f5.tar.bz2 glibc-680254fe22215c1f41f247d085c5cac5783b73f5.zip |
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.
Diffstat (limited to 'sysdeps/i386')
-rw-r--r-- | sysdeps/i386/dl-machine.h | 7 |
1 files changed, 5 insertions, 2 deletions
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 } } |