aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.c
diff options
context:
space:
mode:
authorThiemo Seufer <ths@networkno.de>2006-08-15 18:28:48 +0000
committerThiemo Seufer <ths@networkno.de>2006-08-15 18:28:48 +0000
commit8992f0d7c2d63ad6b5c102572be103791c6a958e (patch)
tree418e1f446655641788c67b0cfda3bd8a363ee07f /bfd/elflink.c
parent4be041b2dbd0436dd8d96217ce9e6723ce12f1d2 (diff)
downloadgdb-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.c8
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);