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 1d8b75dda1af6fd14cdafc22a332521a8eda862d..464203fa62935add4f415128a2732038bd5757e4 100644 (file)
@@ -1,3 +1,9 @@
+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
index 80154651095940c2749f0a83aec393d49ee19b5c..8d1700bf0f0bcd4d5de763eefe7b735e1a258bbe 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