blob: 34e69fd5480b304717d72209ea89defb55fd41d6 [file] [log] [blame]
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,