aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain/gcc/patches/4.9-linaro/201-musl_arm.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-10-19 21:45:36 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-10-19 21:45:36 +0000
commit2402885a09b7704e31f55e7e2f3926f3a1c8c20c (patch)
tree12d6a935e659292d28da477d681688f0a1bf1430 /toolchain/gcc/patches/4.9-linaro/201-musl_arm.patch
parentc9527a6a03b8950774d4206d70f9cc13f676e763 (diff)
downloadupstream-2402885a09b7704e31f55e7e2f3926f3a1c8c20c.tar.gz
upstream-2402885a09b7704e31f55e7e2f3926f3a1c8c20c.tar.bz2
upstream-2402885a09b7704e31f55e7e2f3926f3a1c8c20c.zip
gcc: update, split and rework 4.9 musl patches
Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42970 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'toolchain/gcc/patches/4.9-linaro/201-musl_arm.patch')
-rw-r--r--toolchain/gcc/patches/4.9-linaro/201-musl_arm.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/toolchain/gcc/patches/4.9-linaro/201-musl_arm.patch b/toolchain/gcc/patches/4.9-linaro/201-musl_arm.patch
new file mode 100644
index 0000000000..f39ff52468
--- /dev/null
+++ b/toolchain/gcc/patches/4.9-linaro/201-musl_arm.patch
@@ -0,0 +1,40 @@
+--- a/gcc/config/arm/linux-eabi.h
++++ b/gcc/config/arm/linux-eabi.h
+@@ -77,6 +77,23 @@
+ %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
+ %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
+
++/* For ARM musl currently supports four dynamic linkers:
++ - ld-musl-arm.so.1 - for the EABI-derived soft-float ABI
++ - ld-musl-armhf.so.1 - for the EABI-derived hard-float ABI
++ - ld-musl-armeb.so.1 - for the EABI-derived soft-float ABI, EB
++ - ld-musl-armebhf.so.1 - for the EABI-derived hard-float ABI, EB
++ musl does not support the legacy OABI mode.
++ All the dynamic linkers live in /lib.
++ We default to soft-float, EL. */
++#undef MUSL_DYNAMIC_LINKER
++#if TARGET_BIG_ENDIAN_DEFAULT
++#define MUSL_DYNAMIC_LINKER_E "%{mlittle-endian:;:eb}"
++#else
++#define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}"
++#endif
++#define MUSL_DYNAMIC_LINKER \
++ "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
++
+ /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
+ use the GNU/Linux version, not the generic BPABI version. */
+ #undef LINK_SPEC
+--- a/libitm/config/arm/hwcap.cc
++++ b/libitm/config/arm/hwcap.cc
+@@ -40,7 +40,11 @@ int GTM_hwcap HIDDEN = 0
+
+ #ifdef __linux__
+ #include <unistd.h>
++#ifdef __GLIBC__
+ #include <sys/fcntl.h>
++#else
++#include <fcntl.h>
++#endif
+ #include <elf.h>
+
+ static void __attribute__((constructor))