aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf64-s390.c
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2015-10-12 10:21:51 +0200
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>2015-10-12 10:22:49 +0200
commitef05be83b7e1e10e7cba51aeafc879ca3a66826d (patch)
tree323e087992b5a98f13c8e38f03a165f2c4602d88 /bfd/elf64-s390.c
parentda76f7d33ffb3725dadd828f61427f421d1f6ac3 (diff)
downloadbinutils-ef05be83b7e1e10e7cba51aeafc879ca3a66826d.zip
binutils-ef05be83b7e1e10e7cba51aeafc879ca3a66826d.tar.gz
binutils-ef05be83b7e1e10e7cba51aeafc879ca3a66826d.tar.bz2
PR19083 S/390: Fix garbage collection of some GOT relocs.
bfd/ChangeLog: 2015-10-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR ld/19083 * elf32-s390.c (elf_s390_gc_sweep_hook): Do not reduce got refcount for relocs not really requiring a got slot. * elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
Diffstat (limited to 'bfd/elf64-s390.c')
-rw-r--r--bfd/elf64-s390.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 1c37699..7cc0489 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -1462,6 +1462,12 @@ elf_s390_gc_sweep_hook (bfd *abfd,
if (htab->tls_ldm_got.refcount > 0)
htab->tls_ldm_got.refcount -= 1;
break;
+ case R_390_GOTOFF16:
+ case R_390_GOTOFF32:
+ case R_390_GOTOFF64:
+ case R_390_GOTPC:
+ case R_390_GOTPCDBL:
+ break;
case R_390_TLS_GD64:
case R_390_TLS_IE64:
@@ -1474,11 +1480,6 @@ elf_s390_gc_sweep_hook (bfd *abfd,
case R_390_GOT20:
case R_390_GOT32:
case R_390_GOT64:
- case R_390_GOTOFF16:
- case R_390_GOTOFF32:
- case R_390_GOTOFF64:
- case R_390_GOTPC:
- case R_390_GOTPCDBL:
case R_390_GOTENT:
if (h != NULL)
{