Browse Source

[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.
binutils-2_38-branch
Alan Modra 5 years ago
parent
commit
a1251fdcb5
  1. 6
      gold/powerpc.cc

6
gold/powerpc.cc

@ -8013,8 +8013,7 @@ Target_powerpc<size, big_endian>::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<size, big_endian>::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,

Loading…
Cancel
Save