summaryrefslogtreecommitdiff
path: root/gold/resolve.cc
diff options
context:
space:
mode:
authorH.J. Lu <hjl@lucon.org>2009-12-05 07:28:44 +0000
committerH.J. Lu <hjl@lucon.org>2009-12-05 07:28:44 +0000
commite98f9c88f47c3da2b03320fcc6949538eb2b03c9 (patch)
treeb924c59db177daf8165aad9d3c7f352c5b92b81c /gold/resolve.cc
parent97e17b53c7aff2dc96a1a579dd85d92ab3581fa2 (diff)
downloadbinutils-redhat-e98f9c88f47c3da2b03320fcc6949538eb2b03c9.tar.gz
2009-12-04 H.J. Lu <hongjiu.lu@intel.com>
* resolve.cc (symbol_to_bits): Treat STB_GNU_UNIQUE as STB_GLOBAL. (Symbol_table::override_with_special): Likewise. (Symbol_table::add_from_object): Likewise.
Diffstat (limited to 'gold/resolve.cc')
-rw-r--r--gold/resolve.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/gold/resolve.cc b/gold/resolve.cc
index 2f0479ac85..89b10b9f9a 100644
--- a/gold/resolve.cc
+++ b/gold/resolve.cc
@@ -178,6 +178,7 @@ symbol_to_bits(elfcpp::STB binding, bool is_dynamic,
switch (binding)
{
case elfcpp::STB_GLOBAL:
+ case elfcpp::STB_GNU_UNIQUE:
bits = global_flag;
break;
@@ -883,6 +884,7 @@ Symbol_table::override_with_special(Sized_symbol<size>* tosym,
|| ((tosym->visibility() == elfcpp::STV_HIDDEN
|| tosym->visibility() == elfcpp::STV_INTERNAL)
&& (tosym->binding() == elfcpp::STB_GLOBAL
+ || tosym->binding() == elfcpp::STB_GNU_UNIQUE
|| tosym->binding() == elfcpp::STB_WEAK)
&& !parameters->options().relocatable()))
this->force_local(tosym);