diff options
author | Doug Kwan <dougkwan@google.com> | 2012-03-14 23:07:07 +0000 |
---|---|---|
committer | Doug Kwan <dougkwan@google.com> | 2012-03-14 23:07:07 +0000 |
commit | fa40b62ad433db232f60443bbe9d222acab81cad (patch) | |
tree | e6cac4f1cfacbe32e34a4ecc18554e2b7e624645 /gold | |
parent | 9eca3be1dd2cfc6f3db751647469fdd13974a55f (diff) | |
download | gdb-fa40b62ad433db232f60443bbe9d222acab81cad.zip gdb-fa40b62ad433db232f60443bbe9d222acab81cad.tar.gz gdb-fa40b62ad433db232f60443bbe9d222acab81cad.tar.bz2 |
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.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/arm.cc | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 47d15a9..5bdda03 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +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. + 2012-03-13 Ian Lance Taylor <iant@google.com> * resolve.cc (Symbol_table::resolve): When merging common symbols, diff --git a/gold/arm.cc b/gold/arm.cc index bc704cc..04004a6 100644 --- a/gold/arm.cc +++ b/gold/arm.cc @@ -8314,7 +8314,9 @@ Target_arm<big_endian>::Scan::global(Symbol_table* symtab, 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 |