mirror of
https://sourceware.org/git/glibc.git
synced 2025-09-01 05:02:03 +03:00
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.
This commit is contained in:
@@ -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 <bits/elfclass.h> /* Defines __ELF_NATIVE_CLASS. */
|
||||
#include <bits/link.h>
|
||||
#include <dl-lookupcfg.h>
|
||||
|
||||
/* 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
|
||||
|
Reference in New Issue
Block a user