mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
bfd/s390: Fix DT_PLTRELSZ in presence of R_390_IRELATIVE.
This was broken by 4ade44b727
,
which changed the calculation to use the .rela.plt linker section
instead of its output section - thus skipping .rela.iplt .
Fix the calculations to include it.
bfd/ChangeLog:
* 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.
This commit is contained in:
parent
081b1afe5a
commit
f92339b8f3
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user