diff options
author | Thiemo Seufer <ths@networkno.de> | 2006-08-15 18:28:48 +0000 |
---|---|---|
committer | Thiemo Seufer <ths@networkno.de> | 2006-08-15 18:28:48 +0000 |
commit | 8992f0d7c2d63ad6b5c102572be103791c6a958e (patch) | |
tree | 418e1f446655641788c67b0cfda3bd8a363ee07f /bfd/elflink.c | |
parent | 4be041b2dbd0436dd8d96217ce9e6723ce12f1d2 (diff) | |
download | gdb-8992f0d7c2d63ad6b5c102572be103791c6a958e.zip gdb-8992f0d7c2d63ad6b5c102572be103791c6a958e.tar.gz gdb-8992f0d7c2d63ad6b5c102572be103791c6a958e.tar.bz2 |
* elf32-mips.c, elf64-mips.c, elfn32-mips.c
(elf_backend_merge_symbol_attribute): Define.
* elflink.c (elf_link_add_object_symbols): Merge only the ELF
visibility flags.
* elfxx-mips.c (_bfd_mips_elf_merge_symbol_attribute): New function.
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r-- | bfd/elflink.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c index ba0e77e..a7657f9 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -4058,13 +4058,13 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info) isym->st_other = (STV_HIDDEN | (isym->st_other & ~ELF_ST_VISIBILITY (-1))); - if (isym->st_other != 0 && !dynamic) + if (ELF_ST_VISIBILITY (isym->st_other) != 0 && !dynamic) { unsigned char hvis, symvis, other, nvis; - /* Take the balance of OTHER from the definition. */ - other = (definition ? isym->st_other : h->other); - other &= ~ ELF_ST_VISIBILITY (-1); + /* Only merge the visibility. Leave the remainder of the + st_other field to elf_backend_merge_symbol_attribute. */ + other = h->other & ~ELF_ST_VISIBILITY (-1); /* Combine visibilities, using the most constraining one. */ hvis = ELF_ST_VISIBILITY (h->other); |