Microblaze linker segmentation fault
authorAlan Modra <amodra@gmail.com>
Tue, 28 May 2019 06:24:15 +0000 (15:54 +0930)
committerAlan Modra <amodra@gmail.com>
Tue, 28 May 2019 06:26:14 +0000 (15:56 +0930)
PR 24596
* elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Don't
attempt to set sh_entsize for excluded PLT section.

bfd/ChangeLog
bfd/elf32-microblaze.c

index 1d8b75d..464203f 100644 (file)
@@ -1,6 +1,12 @@
 2019-05-28  Alan Modra  <amodra@gmail.com>
 
        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  <amodra@gmail.com>
+
+       PR 24596
        * elf64-alpha.c (elf64_alpha_relocate_section): Don't attempt
        to emit R_ALPHA_GOTTPREL in PIEs, for which no space is
        allocated in alpha_dynamic_entries_for_reloc.
index 8015465..8d1700b 100644 (file)
@@ -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