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. --- include/link.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 9345c928d7..5aba874927 100644 --- a/include/link.h +++ b/include/link.h @@ -1,6 +1,6 @@ /* Data structure for communication from the run-time dynamic linker for loaded ELF shared objects. - Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -34,6 +34,7 @@ #include /* Defines __ELF_NATIVE_CLASS. */ #include +#include /* Rendezvous structure used by the run-time dynamic linker to communicate details of shared object loading to the debugger. If the executable's @@ -231,6 +232,19 @@ struct link_map unsigned int l_idx; struct link_map_machine l_mach; + + struct + { + const ElfW(Sym) *sym; + int noexec; + int noplt; +#ifdef DL_LOOKUP_RETURNS_MAP + struct link_map *value; +#else + ElfW(Addr) value; +#endif + const ElfW(Sym) *ret; + } l_lookup_cache; }; struct dl_phdr_info -- cgit v1.2.3