diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-04-13 07:55:02 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-04-13 07:55:02 +0000 |
commit | f9f2a150e845fa19fc047285aa38e9164e42aa6a (patch) | |
tree | f03cc56b23d340150f545060f32a12dabaa5aa4b /sysdeps | |
parent | 61bb2ef098cc1e7e598e32511915525de98ed7d1 (diff) | |
download | glibc-f9f2a150e845fa19fc047285aa38e9164e42aa6a.tar.gz glibc-f9f2a150e845fa19fc047285aa38e9164e42aa6a.tar.xz glibc-f9f2a150e845fa19fc047285aa38e9164e42aa6a.zip |
Update.
2002-04-13 Ulrich Drepper <drepper@redhat.com> * elf/do-lookup.h [!VERSIONED]: Add new parameter flags. Use it to check whether the caller prefers getting the most recent version of a symbol of the earliest version. * elf/dl-lookup.c: Adjust all callers of do_lookup. Change _dl_do_lookup to also take the new parameter and pass it on. Change 'explicit' parameter of _dl_lookup_symbol and _dl_lookup_versioned_symbol to flags. Adjust tests. * sysdeps/generic/ldsodefs.h: Adjust prototypes. * elf/dl-libc.c: Adjust all callers of _dl_lookup_symbol and _dl_lookup_versioned_symbol. * elf/dl-reloc.c: Likewise. * elf/dl-runtime.c: Likewise. * elf/dl-sym.c: Likewise. * sysdeps/mips/dl-machine.h: Likewise.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 13 | ||||
-rw-r--r-- | sysdeps/mips/dl-machine.h | 3 |
2 files changed, 13 insertions, 3 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index 011391865f..5f586f2e3c 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -532,15 +532,24 @@ extern lookup_t _dl_lookup_symbol (const char *undef, struct link_map *undef_map, const ElfW(Sym) **sym, struct r_scope_elem *symbol_scope[], - int type_class, int explicit) + int type_class, int flags) internal_function; extern lookup_t _dl_lookup_symbol_internal (const char *undef, struct link_map *undef_map, const ElfW(Sym) **sym, struct r_scope_elem *symbol_scope[], - int type_class, int explicit) + int type_class, int flags) internal_function; +enum + { + /* If necessary add dependency between user and provider object. */ + DL_LOOKUP_ADD_DEPENDENCY = 1, + /* Return most recent version instead of default version for + unversioned lookup. */ + DL_LOOKUP_RETURN_NEWEST = 2 + }; + /* Lookup versioned symbol. */ extern lookup_t _dl_lookup_versioned_symbol (const char *undef, struct link_map *undef_map, diff --git a/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h index fcf37f6569..bc5e84fd86 100644 --- a/sysdeps/mips/dl-machine.h +++ b/sysdeps/mips/dl-machine.h @@ -307,7 +307,8 @@ __dl_runtime_resolve (ElfW(Word) sym_index, \ } \ case 0: \ value = _dl_lookup_symbol (strtab + sym->st_name, l, &sym, \ - l->l_scope, ELF_RTYPE_CLASS_PLT, 0); \ + l->l_scope, ELF_RTYPE_CLASS_PLT, \ + DL_LOOKUP_ADD_DEPENDENCY); \ } \ \ /* Currently value contains the base load address of the object \ |