summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target/config/Config.in.binutils1
-rw-r--r--toolchain/binutils/patches/2.26.1/microblaze.patch14
2 files changed, 14 insertions, 1 deletions
diff --git a/target/config/Config.in.binutils b/target/config/Config.in.binutils
index 7457009a0..e262cbcbf 100644
--- a/target/config/Config.in.binutils
+++ b/target/config/Config.in.binutils
@@ -38,7 +38,6 @@ config ADK_TOOLCHAIN_BINUTILS_2_26_1
depends on !ADK_TARGET_ARCH_FRV
depends on !ADK_TARGET_ARCH_H8300
depends on !ADK_TARGET_ARCH_LM32
- depends on !ADK_TARGET_ARCH_MICROBLAZE
depends on !ADK_TARGET_ARCH_NDS32
depends on !ADK_TARGET_ARCH_NIOS2
diff --git a/toolchain/binutils/patches/2.26.1/microblaze.patch b/toolchain/binutils/patches/2.26.1/microblaze.patch
new file mode 100644
index 000000000..e028bf9d1
--- /dev/null
+++ b/toolchain/binutils/patches/2.26.1/microblaze.patch
@@ -0,0 +1,14 @@
+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,