+2016-02-23  Rich Felker  <bugdal@aerifal.cx>
+
+       PR target/19516
+       * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
+       Always produce a RELATIVE reloc for a local symbol.
+
 2016-02-23  Hans-Peter Nilsson  <hp@axis.com>
 
        Fix test-case ld-elf/pr19617b
 
       BFD_ASSERT (sgot != NULL && srela != NULL);
 
       offset = (sgot->output_section->vma + sgot->output_offset
-                       + (h->got.offset &~ (bfd_vma) 1));
+               + (h->got.offset &~ (bfd_vma) 1));
 
       /* If this is a -Bsymbolic link, and the symbol is defined
          locally, we just want to emit a RELATIVE reloc.  Likewise if
          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,