diff -Nur binutils-2.26.1.orig/bfd/elf32-microblaze.c binutils-2.26.1/bfd/elf32-microblaze.c --- binutils-2.26.1.orig/bfd/elf32-microblaze.c 2015-11-13 09:27:40.000000000 +0100 +++ binutils-2.26.1/bfd/elf32-microblaze.c 2016-10-20 19:06:58.655565765 +0200 @@ -3296,8 +3296,8 @@ The entry in the global offset table will already have been initialized in the relocate_section function. */ if (bfd_link_pic (info) - && (info->symbolic || h->dynindx == -1) - && h->def_regular) + && ((info->symbolic && h->def_regular) + || h->dynindx == -1)) { asection *sec = h->root.u.def.section; microblaze_elf_output_dynamic_relocation (output_bfd,