| Fix the genetation of GOT entries for the Microblaze target. |
| |
| PR target/19516 |
| * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): |
| Always produce a RELATIVE reloc for a local symbol. |
| |
| [Taken from https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=47993b4af18c6ef1cad300f6393bf896d3cb5e5c.] |
| Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> |
| |
| diff -Nur binutils-2.25.1.orig/bfd/elf32-microblaze.c binutils-2.25.1/bfd/elf32-microblaze.c |
| --- binutils-2.25.1.orig/bfd/elf32-microblaze.c 2015-07-21 10:20:58.000000000 +0200 |
| +++ binutils-2.25.1/bfd/elf32-microblaze.c 2016-02-14 11:38:45.822387506 +0100 |
| @@ -3293,8 +3293,7 @@ |
| The entry in the global offset table will already have been |
| initialized in the relocate_section function. */ |
| if (info->shared |
| - && (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, |