Update.
* elf/dl-runtime.c (fixup): Correct handling of symbols marked STV_HIDDEN and STV_INTERNAL during lookup. (profile_fixup): Likewise. * elf/dl-reloc.c (RESOLVE): Likewise.
This commit is contained in:
parent
3aaad0b638
commit
736d0841e4
|
@ -1,5 +1,10 @@
|
|||
2000-04-04 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* elf/dl-runtime.c (fixup): Correct handling of symbols marked
|
||||
STV_HIDDEN and STV_INTERNAL during lookup.
|
||||
(profile_fixup): Likewise.
|
||||
* elf/dl-reloc.c (RESOLVE): Likewise.
|
||||
|
||||
* iconv/skeleton.c (FUNCTION_NAME): Reorder initialization of
|
||||
unaligned so that it compiles for system which need unaligned
|
||||
access handling.
|
||||
|
|
|
@ -71,7 +71,7 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
|
|||
|
||||
/* This macro is used as a callback from the ELF_DYNAMIC_RELOCATE code. */
|
||||
#define RESOLVE(ref, version, flags) \
|
||||
(ELFW(ST_VISIBILITY) ((*ref)->st_other) != STV_PROTECTED \
|
||||
(__builtin_expect (ELFW(ST_VISIBILITY) ((*ref)->st_other), 0) == 0 \
|
||||
? ((version) != NULL && (version)->hash != 0 \
|
||||
? _dl_lookup_versioned_symbol (strtab + (*ref)->st_name, l, (ref), \
|
||||
scope, (version), (flags)) \
|
||||
|
@ -134,7 +134,7 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
|
|||
|
||||
#ifdef CLEAR_CACHE
|
||||
CLEAR_CACHE (mapstart, mapend);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -68,9 +68,9 @@ fixup (
|
|||
/* Sanity check that we're really looking at a PLT relocation. */
|
||||
assert (ELFW(R_TYPE)(reloc->r_info) == ELF_MACHINE_JMP_SLOT);
|
||||
|
||||
/* Look up the target symbol. If the symbol is marked STV_PROTECTED
|
||||
don't look in the global scope. */
|
||||
if (ELFW(ST_VISIBILITY) (sym->st_other) != STV_PROTECTED)
|
||||
/* Look up the target symbol. If the normal lookup rules are not
|
||||
used don't look in the global scope. */
|
||||
if (__builtin_expect (ELFW(ST_VISIBILITY) (sym->st_other), 0) == 0)
|
||||
{
|
||||
switch (l->l_info[VERSYMIDX (DT_VERSYM)] != NULL)
|
||||
{
|
||||
|
@ -153,7 +153,7 @@ profile_fixup (
|
|||
|
||||
/* Look up the target symbol. If the symbol is marked STV_PROTEXTED
|
||||
don't look in the global scope. */
|
||||
if (ELFW(ST_VISIBILITY) (sym->st_other) != STV_PROTECTED)
|
||||
if (__builtin_expect (ELFW(ST_VISIBILITY) (sym->st_other), 0) == 0)
|
||||
{
|
||||
switch (l->l_info[VERSYMIDX (DT_VERSYM)] != NULL)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue