From a1251fdcb58f99644c49b65d72507706f2d40200 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 14 Oct 2021 17:01:06 +1030 Subject: [GOLD] Re: PowerPC64: Don't pretend to support multi-toc We can't get at section->address() until everything is laid out, so trying to generalise the offset calculation rather than using a value of 0x8000 (the old object->toc_base_offset()) was bound to fail. got->g_o_t() is a little better than a hard-coded 0x8000. * powerpc.cc (Target_powerpc::Scan::local, global): Don't use toc_pointer() here. --- gold/powerpc.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'gold') diff --git a/gold/powerpc.cc b/gold/powerpc.cc index d10b11e003b..4266268d639 100644 --- a/gold/powerpc.cc +++ b/gold/powerpc.cc @@ -8013,8 +8013,7 @@ Target_powerpc::Scan::local( break; Reloc_section* rela_dyn = target->rela_dyn_section(layout); - Address got_off = (target->toc_pointer() - - got->output_section()->address()); + Address got_off = got->g_o_t(); rela_dyn->add_output_section_relative(got->output_section(), elfcpp::R_POWERPC_RELATIVE, output_section, @@ -8740,8 +8739,7 @@ Target_powerpc::Scan::global( break; Reloc_section* rela_dyn = target->rela_dyn_section(layout); - Address got_off = (target->toc_pointer() - - got->output_section()->address()); + Address got_off = got->g_o_t(); rela_dyn->add_output_section_relative(got->output_section(), elfcpp::R_POWERPC_RELATIVE, output_section, -- cgit v1.2.1