aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/ChangeLog5
-rw-r--r--gold/symtab.h4
2 files changed, 8 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index a8cd1cb..9516072 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,6 +1,11 @@
2009-12-29 Ian Lance Taylor <iant@google.com>
PR 10450
+ * symtab.h (Symbol::needs_dynsym_entry): A symbol in both a
+ regular and a dynamic object only needs a dynamic symbol table
+ entry if it is externally visible.
+
+ PR 10450
* i386.cc (class Target_i386): Initialize global_offset_table_ in
constructor. Add global_offset_table_ field.
(Target_i386::got_section): Set global_offset_table_.
diff --git a/gold/symtab.h b/gold/symtab.h
index ed105c7..cac7bee 100644
--- a/gold/symtab.h
+++ b/gold/symtab.h
@@ -261,7 +261,9 @@ class Symbol
needs_dynsym_entry() const
{
return (this->needs_dynsym_entry_
- || (this->in_reg() && this->in_dyn()));
+ || (this->in_reg()
+ && this->in_dyn()
+ && this->is_externally_visible()));
}
// Mark this symbol as needing an entry in the dynamic symbol table.