From db1ff0288b923bc17d2408a6172a016b7ba0a6a4 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Sat, 14 Nov 2015 11:04:01 -0800 Subject: 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. --- gold/symtab.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gold/symtab.cc') 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; -- cgit v1.1