2003-03-28 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_link_add_object_symbols): Correctly combine visibilities.
This commit is contained in:
parent
962a53d175
commit
5941afc105
2 changed files with 13 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2003-03-28 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* elflink.h (elf_link_add_object_symbols): Correctly combine
|
||||
visibilities.
|
||||
|
||||
2003-03-27 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elfxx-ia64.c (elfNN_ia64_relax_section): Reset self_dtpmod_offset
|
||||
|
|
|
@ -1940,7 +1940,7 @@ elf_link_add_object_symbols (abfd, info)
|
|||
might be needed here. */
|
||||
if (isym->st_other != 0)
|
||||
{
|
||||
unsigned char hvis, symvis, other;
|
||||
unsigned char hvis, symvis, other, nvis;
|
||||
|
||||
/* Take the balance of OTHER from the definition. */
|
||||
other = (definition ? isym->st_other : h->other);
|
||||
|
@ -1949,8 +1949,14 @@ elf_link_add_object_symbols (abfd, info)
|
|||
/* Combine visibilities, using the most constraining one. */
|
||||
hvis = ELF_ST_VISIBILITY (h->other);
|
||||
symvis = ELF_ST_VISIBILITY (isym->st_other);
|
||||
if (! hvis)
|
||||
nvis = symvis;
|
||||
else if (! symvis)
|
||||
nvis = hvis;
|
||||
else
|
||||
nvis = hvis < symvis ? hvis : symvis;
|
||||
|
||||
h->other = other | (hvis > symvis ? hvis : symvis);
|
||||
h->other = other | nvis;
|
||||
}
|
||||
|
||||
/* Set a flag in the hash table entry indicating the type of
|
||||
|
|
Loading…
Add table
Reference in a new issue