23 lines
1.0 KiB
Diff
23 lines
1.0 KiB
Diff
|
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,
|