aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.h
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2001-04-30 16:13:26 +0000
committerH.J. Lu <hjl.tools@gmail.com>2001-04-30 16:13:26 +0000
commit5fba655aed6c897750c2a9c88467b1691b8ec481 (patch)
tree5f3ea805408b8b31de47495c6407a9483ad9defb /bfd/elflink.h
parentdb20fd76547e0c6e7f73969bbeec15e3d83a182e (diff)
downloadgdb-5fba655aed6c897750c2a9c88467b1691b8ec481.zip
gdb-5fba655aed6c897750c2a9c88467b1691b8ec481.tar.gz
gdb-5fba655aed6c897750c2a9c88467b1691b8ec481.tar.bz2
2000-04-27 H.J. Lu <hjl@gnu.org>
* elf.c (_bfd_elf_link_hash_hide_symbol): Set dynindx to -1 only for ELF_LINK_FORCED_LOCAL. * elf32-hppa.c (elf32_hppa_hide_symbol): Likewise. * elf32-mips.c (_bfd_mips_elf_hide_symbol): Likewise. * elfxx-ia64.c (elfNN_ia64_hash_hide_symbol): Likewise. * elflink.h (elf_fix_symbol_flags): Set ELF_LINK_FORCED_LOCAL if the symbol has hidden or internal visibility.
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r--bfd/elflink.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h
index d175223..4973ae3 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -3541,6 +3541,9 @@ elf_fix_symbol_flags (h, eif)
{
struct elf_backend_data *bed;
bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj);
+ if (ELF_ST_VISIBILITY (h->other) == STV_INTERNAL
+ || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN)
+ h->elf_link_hash_flags |= ELF_LINK_FORCED_LOCAL;
(*bed->elf_backend_hide_symbol) (eif->info, h);
}