[GOLD] PowerPC64 @notoc in non-power10 code

Gold version of commit 7aba54da42.

elfcpp/
	* powerpc.h (R_PPC64_REL24_P9NOTOC): Define.
gold/
	* powerpc.cc (Target_powerpc::maybe_skip_tls_get_addr_call,
	is_branch_reloc, max_branch_delta): Handle R_PPC64_REL24_P9NOTOC.
	(Target_powerpc::Branch_info::make_stub): Likewise.
	(struct Plt_stub_ent): Add p9notoc_, p9off_, tsize_.
	(struct Branch_stub_ent): Add p9notoc_, p9off_.
	(Stub_table::add_plt_call_entry): Handle R_PPC64_REL24_P9NOTOC.
	(Stub_table::add_long_branch_entry): Likewise.
	(Stub_table::add_eh_frame): Likewise.
	(Stub_table::plt_call_size): Return aligned size.  Adjust callers.
	Handle p9notoc_ sizing.
	(Stub_table::do_write): Write out p9notoc_ stubs.
	(Target_powerpc::Scan::get_reference_flags, local, global):
	Handle R_PPC64_REL24_P9NOTOC.
	(Target_powerpc::Relocate::relocate): Likewise.
This commit is contained in:
Alan Modra
2021-12-11 14:52:36 +10:30
parent 40eb8b92a1
commit eb97d02405
2 changed files with 229 additions and 82 deletions

View File

@ -184,6 +184,7 @@ enum
R_PPC64_PLTSEQ_NOTOC = 121,
R_PPC64_PLTCALL_NOTOC = 122,
R_PPC64_PCREL_OPT = 123,
R_PPC64_REL24_P9NOTOC = 124,
R_PPC64_D34 = 128,
R_PPC64_D34_LO = 129,