aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2009-12-30 07:40:01 +0000
committerIan Lance Taylor <ian@airs.com>2009-12-30 07:40:01 +0000
commit8d6d383d7cb7438e29207f3bc7c87130c97411e6 (patch)
treedb0ef13cb316f1dd59420d2e4a058517cdb293a6
parente785ec03fb73baeb3699bb46901b2c04a415fd58 (diff)
downloadgdb-8d6d383d7cb7438e29207f3bc7c87130c97411e6.zip
gdb-8d6d383d7cb7438e29207f3bc7c87130c97411e6.tar.gz
gdb-8d6d383d7cb7438e29207f3bc7c87130c97411e6.tar.bz2
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.
-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.