aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/symtab.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/gold/symtab.cc b/gold/symtab.cc
index c26cc22..78bfec5 100644
--- a/gold/symtab.cc
+++ b/gold/symtab.cc
@@ -749,8 +749,11 @@ Symbol_table::add_from_dynobj(
{
elfcpp::Sym<size, big_endian> sym(p);
- // Ignore symbols with local binding.
- if (sym.get_st_bind() == elfcpp::STB_LOCAL)
+ // Ignore symbols with local binding or that have
+ // internal or hidden visibility.
+ if (sym.get_st_bind() == elfcpp::STB_LOCAL
+ || sym.get_st_visibility() == elfcpp::STV_INTERNAL
+ || sym.get_st_visibility() == elfcpp::STV_HIDDEN)
continue;
unsigned int st_name = sym.get_st_name();