aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf32-s390.c3
-rw-r--r--bfd/elf64-s390.c6
3 files changed, 10 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ad9e027..09150db 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2016-06-16 Marcin Koƛcielnicki <koriakin@0x04.net>
+
+ * elf32-s390.c (elf_s390_finish_dynamic_sections): Include
+ .rela.iplt in DT_PLTRELSZ.
+ * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise,
+ for DT_PLTRELSZ and DT_RELASZ as well.
+
2016-06-16 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_check_relocs): Skip relocations in
diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c
index 9480f72..1f058d2 100644
--- a/bfd/elf32-s390.c
+++ b/bfd/elf32-s390.c
@@ -3958,8 +3958,7 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd,
break;
case DT_PLTRELSZ:
- s = htab->elf.srelplt;
- dyn.d_un.d_val = s->size;
+ dyn.d_un.d_val = htab->elf.srelplt->size + htab->elf.irelplt->size;
break;
}
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index cf174f8..a39e1c9 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -3754,8 +3754,7 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd,
break;
case DT_PLTRELSZ:
- s = htab->elf.srelplt;
- dyn.d_un.d_val = s->size;
+ dyn.d_un.d_val = htab->elf.srelplt->size + htab->elf.irelplt->size;
break;
case DT_RELASZ:
@@ -3766,8 +3765,7 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd,
linker script arranges for .rela.plt to follow all
other relocation sections, we don't have to worry
about changing the DT_RELA entry. */
- s = htab->elf.srelplt;
- dyn.d_un.d_val -= s->size;
+ dyn.d_un.d_val -= htab->elf.srelplt->size + htab->elf.irelplt->size;
break;
}