uclibc: add microblaze support
authorWaldemar Brodkorb <wbx@openadk.org>
Sat, 4 Jun 2016 20:26:04 +0000 (22:26 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 5 Jun 2016 20:16:45 +0000 (22:16 +0200)
Latest uClibc-ng 1.0.15 release fixed open issues with
microblaze shared library and linuxthreads support.
gcc 4.9.3 and gcc 5.3.0 require a small patch.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/gcc/4.9.3/901-microblaze-uclibc.patch [new file with mode: 0644]
package/gcc/5.3.0/892-microblaze-uclibc.patch [new file with mode: 0644]
package/uclibc/Config.in
toolchain/toolchain-buildroot/Config.in

diff --git a/package/gcc/4.9.3/901-microblaze-uclibc.patch b/package/gcc/4.9.3/901-microblaze-uclibc.patch
new file mode 100644 (file)
index 0000000..82c44e1
--- /dev/null
@@ -0,0 +1,21 @@
+Add dynamic linker support for uClibc
+
+Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
+
+diff -Nur gcc-4.9.3.orig/gcc/config/microblaze/linux.h gcc-4.9.3/gcc/config/microblaze/linux.h
+--- gcc-4.9.3.orig/gcc/config/microblaze/linux.h       2016-06-04 21:21:09.430646655 +0200
++++ gcc-4.9.3/gcc/config/microblaze/linux.h    2016-06-04 21:21:44.596003509 +0200
+@@ -36,10 +36,13 @@
+ #undef MUSL_DYNAMIC_LINKER
+ #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
++#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+ #if DEFAULT_LIBC == LIBC_MUSL
+ #define DYNAMIC_LINKER MUSL_DYNAMIC_LINKER
++#elif DEFAULT_LIBC == LIBC_UCLIBC
++#define DYNAMIC_LINKER UCLIBC_DYNAMIC_LINKER
+ #else
+ #define DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
+ #endif
diff --git a/package/gcc/5.3.0/892-microblaze-uclibc.patch b/package/gcc/5.3.0/892-microblaze-uclibc.patch
new file mode 100644 (file)
index 0000000..a8eb5a6
--- /dev/null
@@ -0,0 +1,24 @@
+Add dynamic linker support for uClibc
+
+Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
+
+diff -Nur gcc-5.3.0.orig/gcc/config/microblaze/linux.h gcc-5.3.0/gcc/config/microblaze/linux.h
+--- gcc-5.3.0.orig/gcc/config/microblaze/linux.h       2015-05-28 16:08:19.000000000 +0200
++++ gcc-5.3.0/gcc/config/microblaze/linux.h    2016-05-13 09:21:01.579262885 +0200
+@@ -28,7 +28,15 @@
+ #undef TLS_NEEDS_GOT
+ #define TLS_NEEDS_GOT 1
+-#define DYNAMIC_LINKER "/lib/ld.so.1"
++#define GLIBC_DYNAMIC_LINKER  "/lib/ld.so.1"
++#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
++
++#if DEFAULT_LIBC == LIBC_UCLIBC
++#define DYNAMIC_LINKER UCLIBC_DYNAMIC_LINKER
++#else
++#define DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
++#endif
++
+ #undef  SUBTARGET_EXTRA_SPECS
+ #define SUBTARGET_EXTRA_SPECS \
+   { "dynamic_linker", DYNAMIC_LINKER }
index 1aad9a0b4a520a89fe2bdb771d63a6406ac81b6a..f5a33106d00a9fca5cf21ad61a23d30df5c648d2 100644 (file)
@@ -59,14 +59,14 @@ choice
        config BR2_PTHREADS
                bool "linuxthreads"
                select BR2_TOOLCHAIN_HAS_THREADS
-               depends on BR2_m68k || BR2_arm || BR2_armeb || BR2_xtensa
+               depends on BR2_m68k || BR2_microblaze || BR2_arm || BR2_armeb || BR2_xtensa
 
        config BR2_PTHREADS_NATIVE
                bool "Native POSIX Threading (NPTL)"
                select BR2_TOOLCHAIN_HAS_THREADS
                select BR2_TOOLCHAIN_HAS_THREADS_NPTL
                depends on BR2_USE_MMU
-               depends on !BR2_m68k
+               depends on !BR2_m68k && !BR2_microblaze
 endchoice
 
 config BR2_PTHREAD_DEBUG
@@ -121,6 +121,7 @@ config BR2_UCLIBC_TARGET_ARCH
        default "arc"      if BR2_arcle || BR2_arceb
        default "arm"      if BR2_arm   || BR2_armeb
        default "m68k"     if BR2_m68k
+       default "microblaze"   if BR2_microblaze
        default "mips"     if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
        default "powerpc"  if BR2_powerpc
        default "sh"       if BR2_sh
index 2b0ebc170bb45773e46717e08fbe9445b7d69661..52009c4b186e24791c28876867e7b1d189f131da 100644 (file)
@@ -24,13 +24,13 @@ choice
        prompt "C library"
        default BR2_TOOLCHAIN_UCLIBC
        default BR2_TOOLCHAIN_BUILDROOT_GLIBC if BR2_aarch64 || BR2_aarch64_be \
-               || BR2_microblaze || BR2_powerpc64
+               || BR2_powerpc64
 
 config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
        bool "uClibc"
        select BR2_TOOLCHAIN_USES_UCLIBC
        depends on BR2_arcle   || BR2_arceb  || BR2_arm    || BR2_armeb    || \
-                  BR2_bfin    || BR2_i386   || BR2_m68k   || \
+                  BR2_bfin    || BR2_i386   || BR2_m68k   || BR2_microblaze || \
                   BR2_mips    || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
                   BR2_powerpc || BR2_sh2a   || BR2_sh4    || BR2_sh4eb    || \
                   BR2_sparc   || BR2_xtensa || BR2_x86_64