diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2020-11-23 05:06:51 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2020-11-23 05:13:55 -0800 |
commit | cbf097d7b024fad33d13cc43ff0d35f2e0b11898 (patch) | |
tree | a9ec0a3b9187e473c607a1d54c817d21ed27d262 /bfd | |
parent | e1b9725dfaf7a993fa06ee71ae72e6ded7470f1b (diff) | |
download | gdb-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/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf64-s390.c | 2 |
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; } |