summaryrefslogtreecommitdiffstats
path: root/package/binutils
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2016-10-23 21:26:16 +0200
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-10-28 15:11:52 +0200
commitd70ade160efe88530b2511eb081730f2dcbfb3ae (patch)
tree96eaec3920bbd1e6fdb79e5697e34dd146cc29d4 /package/binutils
parent718b7ebb43c82a0879ef098d44bbdb856a3a5fdb (diff)
downloadbuildroot-d70ade160efe88530b2511eb081730f2dcbfb3ae.tar.gz
buildroot-d70ade160efe88530b2511eb081730f2dcbfb3ae.zip
microblaze: fix musl support
For musl we need patches for bintils 2.25.1 and 2.26.1. Binutils 2.27 and gcc 6.2.x does not work for microblaze, even not for uClibc-ng or glibc. For gcc 5.4.x the existing patch need reworking so that musl and uClibc-ng is supported. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> [Thomas: - Add proper description for the binutils patches - Use BR2_microblaze instead of BR2_microblazeel and BR2_microblazebz] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package/binutils')
-rw-r--r--package/binutils/2.25.1/800-microblaze-musl.patch22
-rw-r--r--package/binutils/2.26.1/0800-microblaze-musl.patch23
-rw-r--r--package/binutils/Config.in.host2
3 files changed, 47 insertions, 0 deletions
diff --git a/package/binutils/2.25.1/800-microblaze-musl.patch b/package/binutils/2.25.1/800-microblaze-musl.patch
new file mode 100644
index 0000000000..34e69fd548
--- /dev/null
+++ b/package/binutils/2.25.1/800-microblaze-musl.patch
@@ -0,0 +1,22 @@
+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,
diff --git a/package/binutils/2.26.1/0800-microblaze-musl.patch b/package/binutils/2.26.1/0800-microblaze-musl.patch
new file mode 100644
index 0000000000..5e45058f6c
--- /dev/null
+++ b/package/binutils/2.26.1/0800-microblaze-musl.patch
@@ -0,0 +1,23 @@
+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.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,
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 3e0c357d99..a7610b447c 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -17,6 +17,8 @@ choice
config BR2_BINUTILS_VERSION_2_27_X
bool "binutils 2.27"
+ # supported but broken on Microblaze
+ depends on !BR2_microblaze
endchoice
OpenPOWER on IntegriCloud