aboutsummaryrefslogtreecommitdiff
path: root/gold/sparc.cc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2023-06-23 09:38:13 +0930
committerAlan Modra <amodra@gmail.com>2023-06-23 21:02:48 +0930
commitbdad2ad579f7e7a6307f61e67ef70315506a26f6 (patch)
treeac16c422e917dfe8cde08116d7c8029c881c40a9 /gold/sparc.cc
parent027614abf11de9e79a335df4e1f9a788b7ab0063 (diff)
downloadfsf-binutils-gdb-bdad2ad579f7e7a6307f61e67ef70315506a26f6.zip
fsf-binutils-gdb-bdad2ad579f7e7a6307f61e67ef70315506a26f6.tar.gz
fsf-binutils-gdb-bdad2ad579f7e7a6307f61e67ef70315506a26f6.tar.bz2
[GOLD] Support setting DT_RELACOUNT late
PowerPC gold adds relative dynamic relocs in do_relax. These aren't accounted for in the value set in add_target_dynamic_tags, which is called before do_relax. Provide a way of setting DT_RELCOUNT and DT_RELACOUNT at the point where .dynamic is written. * layout.cc (Layout::add_target_dynamic_tags): Add custom_relcount parameter. Emit DT_RELCOUNT/RELACOUNT as a custom target handled dynamic tag if set. * layout.h(Layout::add_target_dynamic_tags): Update prototype. * aarch64.cc (Target_aarch64::do_finalize_sections): Adjust add_target_dynamic_tags call. * arm.cc (Target_arm::do_finalize_sections): Likewise. * i386.cc (Target_i386::do_finalize_sections): Likewise. * mips.cc (Target_mips::do_finalize_sections): Likewise. * s390.cc (Target_s390::do_finalize_sections): Likewise. * sparc.cc (Target_sparc::do_finalize_sections): Likewise. * tilegx.cc (Target_tilegx::do_finalize_sections): Likewise. * x86_64.cc (Target_x86_64::do_finalize_sections): Likewise. * powerpc.cc (Target_powerpc::do_finalize_sections): Likewise. (Target_powerpc::do_dynamic_tag_custom_value): New function.
Diffstat (limited to 'gold/sparc.cc')
-rw-r--r--gold/sparc.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gold/sparc.cc b/gold/sparc.cc
index 61904f9..42c4a32 100644
--- a/gold/sparc.cc
+++ b/gold/sparc.cc
@@ -3197,7 +3197,7 @@ Target_sparc<size, big_endian>::do_finalize_sections(
? NULL
: this->plt_->rel_plt());
layout->add_target_dynamic_tags(false, this->plt_, rel_plt,
- this->rela_dyn_, true, true);
+ this->rela_dyn_, true, true, false);
// Emit any relocs we saved in an attempt to avoid generating COPY
// relocs.