From 387f8054ca819e73bd9d0c17d23dbe4e68c67947 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Sat, 24 Aug 2013 22:16:41 +0000 Subject: [PATCH] * elf32-tilepro.c (tilepro_elf_finish_dynamic_sections): Don't set GOT's entry size if there is no ELF section data. * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_sections): Likewise. --- bfd/ChangeLog | 8 ++++++++ bfd/elf32-tilepro.c | 5 +++-- bfd/elf64-s390.c | 5 +++-- bfd/elfxx-sparc.c | 7 ++++--- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6e34cc75f20..cc4d7fdc735 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2013-08-24 Maciej W. Rozycki + + * elf32-tilepro.c (tilepro_elf_finish_dynamic_sections): Don't + set GOT's entry size if there is no ELF section data. + * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_sections): + Likewise. + 2013-08-23 H.J. Lu * elf64-x86-64.c (get_elf_x86_64_arch_data): New. diff --git a/bfd/elf32-tilepro.c b/bfd/elf32-tilepro.c index 62b95536478..c36da2bee24 100644 --- a/bfd/elf32-tilepro.c +++ b/bfd/elf32-tilepro.c @@ -3909,8 +3909,9 @@ tilepro_elf_finish_dynamic_sections (bfd *output_bfd, PLT_ENTRY_SIZE - PLT_HEADER_SIZE); } - elf_section_data (splt->output_section)->this_hdr.sh_entsize - = PLT_ENTRY_SIZE; + if (elf_section_data (splt->output_section) != NULL) + elf_section_data (splt->output_section)->this_hdr.sh_entsize + = PLT_ENTRY_SIZE; } if (htab->elf.sgotplt) diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c index 75413e03a9f..3aea98ce765 100644 --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -3692,8 +3692,9 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd, - htab->elf.splt->output_section->vma - 6)/2, htab->elf.splt->contents + 8); } - elf_section_data (htab->elf.splt->output_section) - ->this_hdr.sh_entsize = PLT_ENTRY_SIZE; + if (elf_section_data (htab->elf.splt->output_section) != NULL) + elf_section_data (htab->elf.splt->output_section)->this_hdr.sh_entsize + = PLT_ENTRY_SIZE; } if (htab->elf.sgotplt) diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c index ba001056af9..94da3600a82 100644 --- a/bfd/elfxx-sparc.c +++ b/bfd/elfxx-sparc.c @@ -4793,9 +4793,10 @@ _bfd_sparc_elf_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i } } - elf_section_data (splt->output_section)->this_hdr.sh_entsize - = (htab->is_vxworks || !ABI_64_P (output_bfd)) - ? 0 : htab->plt_entry_size; + if (elf_section_data (splt->output_section) != NULL) + elf_section_data (splt->output_section)->this_hdr.sh_entsize + = ((htab->is_vxworks || !ABI_64_P (output_bfd)) + ? 0 : htab->plt_entry_size); } /* Set the first entry in the global offset table to the address of