diff options
| author | Waldemar Brodkorb <wbx@openadk.org> | 2016-10-23 21:26:16 +0200 |
|---|---|---|
| committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2016-10-28 15:11:52 +0200 |
| commit | d70ade160efe88530b2511eb081730f2dcbfb3ae (patch) | |
| tree | 96eaec3920bbd1e6fdb79e5697e34dd146cc29d4 /package/binutils | |
| parent | 718b7ebb43c82a0879ef098d44bbdb856a3a5fdb (diff) | |
| download | buildroot-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.patch | 22 | ||||
| -rw-r--r-- | package/binutils/2.26.1/0800-microblaze-musl.patch | 23 | ||||
| -rw-r--r-- | package/binutils/Config.in.host | 2 |
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 |

