aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2020-11-23 05:06:51 -0800
committerH.J. Lu <hjl.tools@gmail.com>2020-11-23 05:13:55 -0800
commitcbf097d7b024fad33d13cc43ff0d35f2e0b11898 (patch)
treea9ec0a3b9187e473c607a1d54c817d21ed27d262 /bfd
parente1b9725dfaf7a993fa06ee71ae72e6ded7470f1b (diff)
downloadgdb-cbf097d7b024fad33d13cc43ff0d35f2e0b11898.zip
gdb-cbf097d7b024fad33d13cc43ff0d35f2e0b11898.tar.gz
gdb-cbf097d7b024fad33d13cc43ff0d35f2e0b11898.tar.bz2
s390x: Set .got sh_entsize only if .got size > 0
bfd/ PR ld/26918 * elf64-s390.c (elf_s390_finish_dynamic_sections): Set .got sh_entsize only if .got size > 0. ld: PR ld/26918 * testsuite/ld-s390/pr26918-1.d: New file. * testsuite/ld-s390/pr26918-1.s: Likewise. * testsuite/ld-s390/s390.exp: Run all *.d tests.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf64-s390.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 36a048a..6a552c7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2020-11-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/26918
+ * elf64-s390.c (elf_s390_finish_dynamic_sections): Set .got
+ sh_entsize only if .got size > 0.
+
2020-11-21 Nelson Chu <nelson.chu@sifive.com>
* elfnn-riscv.c (_bfd_riscv_relax_section): Add a new relax pass
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 41b19bc..d6a46b1 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -3547,7 +3547,7 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd,
bfd_put_64 (output_bfd, (bfd_vma) 0,
htab->elf.hgot->root.u.def.section->contents + 16);
}
- if (elf_section_data (htab->elf.splt->output_section) != NULL)
+ if (htab->elf.sgot != NULL && htab->elf.sgot->size > 0)
elf_section_data (htab->elf.sgot->output_section)
->this_hdr.sh_entsize = 8;
}