aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gold/dynobj.cc')
-rw-r--r--gold/dynobj.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/gold/dynobj.cc b/gold/dynobj.cc
index ebb5f33ad9d..f982c4b469d 100644
--- a/gold/dynobj.cc
+++ b/gold/dynobj.cc
@@ -959,9 +959,10 @@ Dynobj::create_gnu_hash_table(const std::vector<Symbol*>& dynsyms,
{
Symbol* sym = dynsyms[i];
- // FIXME: Should put on unhashed_dynsyms if the symbol is
- // hidden.
- if (sym->is_undefined())
+ if (!sym->needs_dynsym_value()
+ && (sym->is_undefined()
+ || sym->is_from_dynobj()
+ || sym->is_forced_local()))
unhashed_dynsyms.push_back(sym);
else
{