PR29462, internal error in relocate, at powerpc.cc:10796
authorAlan Modra <amodra@gmail.com>
Wed, 10 Aug 2022 01:08:52 +0000 (10:38 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 10 Aug 2022 06:01:35 +0000 (15:31 +0930)
commit6158b25f77db11712b84e6a4609898f2615ac749
tree3d8269e2af92cccfa95528374c46a2a265350dac
parent31f6009538b75c22a4b3f99216846973283f0c6d
PR29462, internal error in relocate, at powerpc.cc:10796

Prior to the inline plt call support (commit 08be322439), the only
local syms with plt entries were local ifunc symbols.  There shouldn't
be stubs for other local symbols so don't look for them.  The patch
also fixes minor bugs in get_reference_flags; Many relocs are valid
only for ppc64 and a couple only for ppc32.

PR 29462
* powerpc.cc (Target_powerpc::Relocate::relocate): Rename
use_plt_offset to pltcal_to_direct, invert logic.  For relocs
not used with inline plt sequences against local symbols, only
look for stubs when the symbol is an ifunc.
(Target_powerpc::Scan::get_reference_flags): Correct reloc
handling for relocs not valid for both 32-bit and 64-bit.
gold/powerpc.cc