mirror of git://sourceware.org/git/glibc.git
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>
|
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
|
* iconv/skeleton.c (FUNCTION_NAME): Reorder initialization of
|
||||||
unaligned so that it compiles for system which need unaligned
|
unaligned so that it compiles for system which need unaligned
|
||||||
access handling.
|
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. */
|
/* This macro is used as a callback from the ELF_DYNAMIC_RELOCATE code. */
|
||||||
#define RESOLVE(ref, version, flags) \
|
#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 \
|
? ((version) != NULL && (version)->hash != 0 \
|
||||||
? _dl_lookup_versioned_symbol (strtab + (*ref)->st_name, l, (ref), \
|
? _dl_lookup_versioned_symbol (strtab + (*ref)->st_name, l, (ref), \
|
||||||
scope, (version), (flags)) \
|
scope, (version), (flags)) \
|
||||||
|
|
@ -134,7 +134,7 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
|
||||||
|
|
||||||
#ifdef CLEAR_CACHE
|
#ifdef CLEAR_CACHE
|
||||||
CLEAR_CACHE (mapstart, mapend);
|
CLEAR_CACHE (mapstart, mapend);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,9 +68,9 @@ fixup (
|
||||||
/* Sanity check that we're really looking at a PLT relocation. */
|
/* Sanity check that we're really looking at a PLT relocation. */
|
||||||
assert (ELFW(R_TYPE)(reloc->r_info) == ELF_MACHINE_JMP_SLOT);
|
assert (ELFW(R_TYPE)(reloc->r_info) == ELF_MACHINE_JMP_SLOT);
|
||||||
|
|
||||||
/* Look up the target symbol. If the symbol is marked STV_PROTECTED
|
/* Look up the target symbol. If the normal lookup rules are not
|
||||||
don't look in the global scope. */
|
used 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)
|
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
|
/* Look up the target symbol. If the symbol is marked STV_PROTEXTED
|
||||||
don't look in the global scope. */
|
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)
|
switch (l->l_info[VERSYMIDX (DT_VERSYM)] != NULL)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue