aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/resolve.cc9
-rw-r--r--gold/symtab.h5
2 files changed, 4 insertions, 10 deletions
diff --git a/gold/resolve.cc b/gold/resolve.cc
index f80e08f..d021598 100644
--- a/gold/resolve.cc
+++ b/gold/resolve.cc
@@ -189,15 +189,6 @@ Symbol_table::resolve(Sized_symbol<size>* to,
break;
}
- if ((tobits & (1 << 1)) != (frombits & (1 << 1)))
- {
- // This symbol is seen in both a dynamic object and a regular
- // object. That means that we need the symbol to go into the
- // dynamic symbol table, so that the dynamic linker can use the
- // regular symbol to override or define the dynamic symbol.
- to->set_needs_dynsym_entry();
- }
-
// FIXME: Warn if either but not both of TO and SYM are STT_TLS.
// We use a giant switch table for symbol resolution. This code is
diff --git a/gold/symtab.h b/gold/symtab.h
index 15d1f78..816afb3 100644
--- a/gold/symtab.h
+++ b/gold/symtab.h
@@ -178,7 +178,10 @@ class Symbol
// table.
bool
needs_dynsym_entry() const
- { return this->needs_dynsym_entry_; }
+ {
+ return (this->needs_dynsym_entry_
+ || (this->in_reg() && this->in_dyn()));
+ }
// Mark this symbol as needing an entry in the dynamic symbol table.
void