aboutsummaryrefslogtreecommitdiff
path: root/gold/resolve.cc
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2009-12-05 07:28:45 +0000
committerH.J. Lu <hjl.tools@gmail.com>2009-12-05 07:28:45 +0000
commitadcf2816e2fcdf7f871270d98f8cd2b83864d56c (patch)
tree626d0ceab272c20fea7dba1f6903de5d1960c986 /gold/resolve.cc
parent6b372c7dcfd8c5d777e19375a058283514fa21f1 (diff)
downloadfsf-binutils-gdb-adcf2816e2fcdf7f871270d98f8cd2b83864d56c.zip
fsf-binutils-gdb-adcf2816e2fcdf7f871270d98f8cd2b83864d56c.tar.gz
fsf-binutils-gdb-adcf2816e2fcdf7f871270d98f8cd2b83864d56c.tar.bz2
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 2f0479a..89b10b9 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);