summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-01-17 19:20:32 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-01-17 19:20:32 +0000
commite3e434ff534ddba9df4faa7f7cc0de4fea2d85d3 (patch)
treeb6edd59fadfba49799c8e60e38af2a93c67d163e
parentc65d9c39beb39f25261b47eb9ede8c1e928b9db5 (diff)
add uclibc eabi patches from #3988
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14073 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--toolchain/uClibc/patches/131-arm_ftruncate64.patch13
-rw-r--r--toolchain/uClibc/patches/132-arm_fix_alignment.patch11
-rw-r--r--toolchain/uClibc/patches/133-unistd_arm.patch31
3 files changed, 55 insertions, 0 deletions
diff --git a/toolchain/uClibc/patches/131-arm_ftruncate64.patch b/toolchain/uClibc/patches/131-arm_ftruncate64.patch
new file mode 100644
index 000000000..504d37bcd
--- /dev/null
+++ b/toolchain/uClibc/patches/131-arm_ftruncate64.patch
@@ -0,0 +1,13 @@
+Index: uclibc-0.9.29/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
+===================================================================
+--- uclibc-0.9.29.orig/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
++++ uclibc-0.9.29/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
+@@ -38,4 +38,8 @@
+ /* define if target supports IEEE signed zero floats */
+ #define __UCLIBC_HAVE_SIGNED_ZERO__
+
++#ifdef __ARM_EABI__
++# define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
++#endif
++
+ #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
diff --git a/toolchain/uClibc/patches/132-arm_fix_alignment.patch b/toolchain/uClibc/patches/132-arm_fix_alignment.patch
new file mode 100644
index 000000000..5f70564f4
--- /dev/null
+++ b/toolchain/uClibc/patches/132-arm_fix_alignment.patch
@@ -0,0 +1,11 @@
+--- uClibc-0.9.29/ldso/ldso/arm/dl-sysdep.h.orig 2006-11-21 02:50:42.000000000 +0000
++++ uClibc-0.9.29/ldso/ldso/arm/dl-sysdep.h 2008-09-07 10:03:55.000000000 +0100
+@@ -15,6 +15,8 @@
+ GOT_BASE[1] = (unsigned long) MODULE; \
+ }
+
++#define DL_MALLOC_ALIGN 8 /* EABI needs 8 byte alignment for STRD LDRD*/
++
+ static inline unsigned long arm_modulus(unsigned long m, unsigned long p)
+ {
+ unsigned long i,t,inc;
diff --git a/toolchain/uClibc/patches/133-unistd_arm.patch b/toolchain/uClibc/patches/133-unistd_arm.patch
new file mode 100644
index 000000000..7aef8b01b
--- /dev/null
+++ b/toolchain/uClibc/patches/133-unistd_arm.patch
@@ -0,0 +1,31 @@
+Index: uClibc-0.9.29/extra/scripts/gen_bits_syscall_h.sh
+===================================================================
+--- uClibc-0.9.29.orig/extra/scripts/gen_bits_syscall_h.sh 2006-12-12 04:30:02.000000000 +0100
++++ uClibc-0.9.29/extra/scripts/gen_bits_syscall_h.sh 2008-03-10 23:20:52.000000000 +0100
+@@ -24,8 +24,8 @@
+ ( echo "#include <asm/unistd.h>";
+ echo "#include <asm/unistd.h>" |
+ $CC -E $CC_SYSNUM_ARGS $INCLUDE_OPTS - |
+- sed -ne 's/^[ ]*#define[ ]*__NR_\([A-Za-z0-9_]*\).*/UCLIBC_\1 __NR_\1/gp' \
+- -e 's/^[ ]*#undef[ ]*__NR_\([A-Za-z0-9_]*\).*/UNDEFUCLIBC_\1 __NR_\1/gp' # needed to strip out any kernel-internal defines
++ sed -ne 's/^[ ]*#define[ ]*\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\).*/UCLIBC\1\2 \1\2/gp' \
++ -e 's/^[ ]*#undef[ ]*\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\).*/UNDEFUCLIBC\1\2 \1\2/gp' # needed to strip out any kernel-internal defines
+ ) |
+ $CC -E $INCLUDE_OPTS - |
+ ( echo "/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */" ; echo ;
+@@ -35,10 +35,10 @@
+ echo "#ifndef _SYSCALL_H" ;
+ echo "# error \"Never use <bits/sysnum.h> directly; include <sys/syscall.h> instead.\"" ;
+ echo "#endif" ; echo ;
+- sed -ne 's/^UCLIBC_\([A-Za-z0-9_]*\) *\(.*\)/#undef __NR_\1\
+-#define __NR_\1 \2\
+-#define SYS_\1 __NR_\1/gp' \
+- -e 's/^UNDEFUCLIBC_\([A-Za-z0-9_]*\).*/#undef __NR_\1/gp'
++ sed -ne 's/^UCLIBC\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\) *\(.*\)/#undef \1\2\
++#define \1\2 \3\
++#define SYS_\2 \1\2/gp' \
++ -e 's/^UNDEFUCLIBC\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\).*/#undef \1\2/gp'
+ echo ;
+ echo "#endif" ;
+ )
+