From e3e434ff534ddba9df4faa7f7cc0de4fea2d85d3 Mon Sep 17 00:00:00 2001 From: nbd Date: Sat, 17 Jan 2009 19:20:32 +0000 Subject: [PATCH] add uclibc eabi patches from #3988 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14073 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../uClibc/patches/131-arm_ftruncate64.patch | 13 ++++++++ .../patches/132-arm_fix_alignment.patch | 11 +++++++ toolchain/uClibc/patches/133-unistd_arm.patch | 31 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 toolchain/uClibc/patches/131-arm_ftruncate64.patch create mode 100644 toolchain/uClibc/patches/132-arm_fix_alignment.patch create mode 100644 toolchain/uClibc/patches/133-unistd_arm.patch 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 "; + echo "#include " | + $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 directly; include 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" ; + ) +