summaryrefslogtreecommitdiff
path: root/toolchain/gcc/patches/4.9.3/microblaze.uclibc
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/gcc/patches/4.9.3/microblaze.uclibc')
-rw-r--r--toolchain/gcc/patches/4.9.3/microblaze.uclibc29
1 files changed, 29 insertions, 0 deletions
diff --git a/toolchain/gcc/patches/4.9.3/microblaze.uclibc b/toolchain/gcc/patches/4.9.3/microblaze.uclibc
new file mode 100644
index 000000000..06dfddcd7
--- /dev/null
+++ b/toolchain/gcc/patches/4.9.3/microblaze.uclibc
@@ -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} \