aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/ChangeLog7
-rw-r--r--gold/symtab.cc5
2 files changed, 10 insertions, 2 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 2b96de5..b1a022c 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,10 @@
+2015-11-14 Cary Coutant <ccoutant@gmail.com>
+
+ PR gold/19244
+ PR gold/18548
+ * symtab.cc (Symbol_table::do_define_in_output_data): Check for forced
+ local symbols only for predefined symbols.
+
2015-11-11 Alan Modra <amodra@gmail.com>
Peter Bergner <bergner@vnet.ibm.com>
diff --git a/gold/symtab.cc b/gold/symtab.cc
index 6d107a8..22a44e0 100644
--- a/gold/symtab.cc
+++ b/gold/symtab.cc
@@ -1986,8 +1986,9 @@ Symbol_table::do_define_in_output_data(
return sym;
else
{
- if (binding == elfcpp::STB_LOCAL
- || this->version_script_.symbol_is_local(name))
+ if (defined == PREDEFINED
+ && (binding == elfcpp::STB_LOCAL
+ || this->version_script_.symbol_is_local(name)))
this->force_local(oldsym);
delete sym;
return oldsym;