]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[GOLD] PowerPC64: Don't pretend to support multi-toc
authorAlan Modra <amodra@gmail.com>
Tue, 12 Oct 2021 09:15:13 +0000 (19:45 +1030)
committerAlan Modra <amodra@gmail.com>
Thu, 21 Oct 2021 11:35:55 +0000 (22:05 +1030)
commit6f552ca8039a7a9cff7d379f5219e951f1cf9500
treedc533e298c3bb9fe2598cad960f5e3538b69f03b
parentccf0c86c8750e2b1e1202c757b4066a11deb0095
[GOLD] PowerPC64: Don't pretend to support multi-toc

Code in powerpc.cc is pretending to support a per-object toc pointer
value, but powerpc gold has no real support for multi-toc.  This patch
removes the pretense, tidying quite a lot in preparation for a
followup patch.  If multi-toc is ever to be supported, don't revert
this patch but start by adding object parameter to toc_pointer() and
an object to Branch_stub_key.

* powerpc.cc (Powerpc_relobj::toc_base_offset): Delete.
(Target_powerpc::toc_pointer): New function.  Use throughout.
(Target_powerpc::got_base_offset): New function.  Use throughout..
(Output_data_got_powerpc::got_base_offset): ..in place of
this.  Delete.
(Output_data_got_powerpc::Output_data_got_powerpc): Init
header_index_ to -1u for 64-bit, and make header here.
(Output_data_got_powerpc::set_final_data_size, reserve_ent): Don't
make 64-bit header here.
(Output_data_got_powerpc::g_o_t): Return toc pointer offset in
section for 64-bit.  Use throughout.
(Stub_table): Remove toc_base_off_ from Branch_stub_key, and
object param on add_long_branch_entry and find_long_branch_entry.
Adjust all uses.

(cherry picked from commit a19da04b3c3a01699aaf7a59b03f5f008355b23d)
gold/powerpc.cc