summaryrefslogtreecommitdiff
path: root/toolchain/gcc
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-06-10 08:12:46 -0500
committerWaldemar Brodkorb <wbx@openadk.org>2015-06-10 08:12:46 -0500
commitf121217cee8d3d59c869b4f9837fcb78cc348537 (patch)
tree9ad1826d36aa52f60a662273eb07ada6de190ee3 /toolchain/gcc
parentf83f969bb5f008e1c1265d0e34d1fc600cb9e0e5 (diff)
add the ability to build uClibc-ng toolchain for microblaze (only static binaries are working for now)
Diffstat (limited to 'toolchain/gcc')
-rw-r--r--toolchain/gcc/patches/4.9.2/microblaze-uclibc.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/toolchain/gcc/patches/4.9.2/microblaze-uclibc.patch b/toolchain/gcc/patches/4.9.2/microblaze-uclibc.patch
new file mode 100644
index 000000000..06dfddcd7
--- /dev/null
+++ b/toolchain/gcc/patches/4.9.2/microblaze-uclibc.patch
@@ -0,0 +1,29 @@
+diff -Nur gcc-4.9.2.orig/gcc/config/microblaze/linux.h gcc-4.9.2/gcc/config/microblaze/linux.h
+--- gcc-4.9.2.orig/gcc/config/microblaze/linux.h 2014-01-02 16:23:26.000000000 -0600
++++ gcc-4.9.2/gcc/config/microblaze/linux.h 2015-06-07 09:32:24.621501374 -0500
+@@ -25,10 +25,23 @@
+ #undef TLS_NEEDS_GOT
+ #define TLS_NEEDS_GOT 1
+
+-#define DYNAMIC_LINKER "/lib/ld.so.1"
++#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
++#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
++#if DEFAULT_LIBC == LIBC_UCLIBC
++#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
++#elif DEFAULT_LIBC == LIBC_GLIBC
++#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
++#else
++#error "Unsupported DEFAULT_LIBC"
++#endif
++#define GNU_USER_DYNAMIC_LINKER \
++ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
++
++#define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER
++
+ #undef SUBTARGET_EXTRA_SPECS
+ #define SUBTARGET_EXTRA_SPECS \
+- { "dynamic_linker", DYNAMIC_LINKER }
++ { "dynamic_linker", ELF_DYNAMIC_LINKER }
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{shared:-shared} \