aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@gmail.com>2015-11-14 11:04:01 -0800
committerCary Coutant <ccoutant@gmail.com>2015-11-14 11:04:01 -0800
commitdb1ff0288b923bc17d2408a6172a016b7ba0a6a4 (patch)
tree13887d54cd1212d858665f111621ad38bc2ada62
parent895d4275baf1739a1a02d6c5c918be42b9102702 (diff)
downloadfsf-binutils-gdb-db1ff0288b923bc17d2408a6172a016b7ba0a6a4.zip
fsf-binutils-gdb-db1ff0288b923bc17d2408a6172a016b7ba0a6a4.tar.gz
fsf-binutils-gdb-db1ff0288b923bc17d2408a6172a016b7ba0a6a4.tar.bz2
Fix problem where bss symbols for copy relocations are marked local.
gold/ PR gold/19244 PR gold/18548 * symtab.cc (Symbol_table::do_define_in_output_data): Check for forced local symbols only for predefined symbols.
-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;