From 94667ab146a0c94f87f3d9aa7d1c819663b28338 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 28 May 2019 15:54:15 +0930 Subject: [PATCH] Microblaze linker segmentation fault PR 24596 * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Don't attempt to set sh_entsize for excluded PLT section. --- bfd/ChangeLog | 6 ++++++ bfd/elf32-microblaze.c | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1d8b75dda1..464203fa62 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2019-05-28 Alan Modra + + PR 24596 + * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Don't + attempt to set sh_entsize for excluded PLT section. + 2019-05-28 Alan Modra PR 24596 diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c index 8015465109..8d1700bf0f 100644 --- a/bfd/elf32-microblaze.c +++ b/bfd/elf32-microblaze.c @@ -3455,9 +3455,10 @@ microblaze_elf_finish_dynamic_sections (bfd *output_bfd, memset (splt->contents, 0, PLT_ENTRY_SIZE); bfd_put_32 (output_bfd, (bfd_vma) 0x80000000 /* nop. */, splt->contents + splt->size - 4); - } - elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4; + if (splt->output_section != bfd_abs_section_ptr) + elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4; + } } /* Set the first entry in the global offset table to the address of -- 2.34.1