S/390: ifunc: Handle GOTOFF relocs on ifunc symbols.
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Fri, 16 Oct 2015 19:07:17 +0000 (21:07 +0200)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Thu, 22 Oct 2015 08:11:57 +0000 (10:11 +0200)
commit01a53584798606cf6329e8a86134cb9b47d1de11
treeddde096897ea6935d2ec0d1ca7f63b93d030ca24
parent0f042c67a04d5d0c8f879c27d651a7ed5aa6566f
S/390: ifunc: Handle GOTOFF relocs on ifunc symbols.

Normally a GOTOFF reloc only uses the GOT pointer to address something
relativ to it without actually requiring a GOT or PLT slot.  Things
change if the target is an ifunc symbol though.

bfd/ChangeLog:

* elf32-s390.c (elf_s390_check_relocs): Fallthrough to the PLT
slot allocating code for GOTOFF relocs on ifunc symbols.
(elf_s390_gc_sweep_hook): Decrement plt refcount for GOTOFF relocs
on ifunc symbols.
(elf_s390_relocate_section): Redirect a GOTOFF reloc to an iplt
slot.
bfd/ChangeLog
bfd/elf32-s390.c