Skip to content
Snippets Groups Projects
Commit 0961e631 authored by Alan Modra's avatar Alan Modra
Browse files

PR30217, dynamic relocations using local dynamic symbols

glibc's ld.so ignores local dynamic symbols.  It's been that way
forever.  We therefore can't use them on dynamic relocations.  Fixing
that problem uncovered another problem in sorting of dynamic relocs,
caused no doubt by copying make_iplt_section (where we don't want
reloc sorting by the generic gold function, we want iplt relocs last)
to make_lplt_section (where we do want sorting).

	PR 30217
	* powerpc.cc (branch_needs_plt_entry): New function.
	(Target_powerpc::plt_off): Use it here..
	(Target_powerpc::Scan::global): ..and here to correct PLT16 reloc
	handling for forced-local global symbols.
	(Output_data_plt_powerpc::add_entry): Rename "stash"
	parameter "is_local".  Emit relative relocs for globals that
	are forced local, and don't set_needs_dynsym_entry.
	(Target_powerpc::make_lplt_section): Don't create a separate
	reloc section, use rela_dyn.
	(Target_powerpc::make_brlt_section): Likewise.
parent d56e433a
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment