[GOLD][PATCH] Fix ARM backend's handling of protected symbol in a DSO
Doug Kwan (關振德)
dougkwan@google.com
Wed Mar 14 08:56:00 GMT 2012
Hi
This fixes two regressions in the gold testsuite. Tested natively
on arm-linux-gnueabi.
-Doug
2012-03-14 Doug Kwan <dougkwan@google.com>
* gold/arm.cc (Target_arm::Scan::global): Generate R_ARM_GLOB_DAT
dynamic relocations for protected symbols in shared objects.
-------------- next part --------------
Index: gold/arm.cc
===================================================================
RCS file: /cvs/src/src/gold/arm.cc,v
retrieving revision 1.146
diff -u -u -p -r1.146 arm.cc
--- gold/arm.cc 3 Feb 2012 20:01:01 -0000 1.146
+++ gold/arm.cc 14 Mar 2012 08:44:14 -0000
@@ -8314,7 +8314,9 @@ Target_arm<big_endian>::Scan::global(Sym
Reloc_section* rel_dyn = target->rel_dyn_section(layout);
if (gsym->is_from_dynobj()
|| gsym->is_undefined()
- || gsym->is_preemptible())
+ || gsym->is_preemptible()
+ || (gsym->visibility() == elfcpp::STV_PROTECTED
+ && parameters->options().shared()))
got->add_global_with_rel(gsym, GOT_TYPE_STANDARD,
rel_dyn, elfcpp::R_ARM_GLOB_DAT);
else
More information about the Binutils
mailing list