summaryrefslogtreecommitdiff
path: root/packages/uclibc/uclibc-0.9.29
diff options
context:
space:
mode:
Diffstat (limited to 'packages/uclibc/uclibc-0.9.29')
-rw-r--r--packages/uclibc/uclibc-0.9.29/arm_fix_alignment.patch19
-rw-r--r--packages/uclibc/uclibc-0.9.29/uclibc-use-fgnu89-inline.patch34
2 files changed, 53 insertions, 0 deletions
diff --git a/packages/uclibc/uclibc-0.9.29/arm_fix_alignment.patch b/packages/uclibc/uclibc-0.9.29/arm_fix_alignment.patch
new file mode 100644
index 0000000000..3a059021a7
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.29/arm_fix_alignment.patch
@@ -0,0 +1,19 @@
+ARMV5 can use STRD and LDRD access instructions but these accesses need to be
+8 byte aligned. The dynamic linker's malloc needs to match this so structures
+become 8 byte aligned to void unaligned accesses.
+
+RP - 14/02/2008
+
+Index: uClibc-0.9.29/ldso/ldso/arm/dl-sysdep.h
+===================================================================
+--- uClibc-0.9.29.orig/ldso/ldso/arm/dl-sysdep.h 2008-02-14 00:58:12.000000000 +0000
++++ uClibc-0.9.29/ldso/ldso/arm/dl-sysdep.h 2008-02-14 00:59:19.000000000 +0000
+@@ -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/packages/uclibc/uclibc-0.9.29/uclibc-use-fgnu89-inline.patch b/packages/uclibc/uclibc-0.9.29/uclibc-use-fgnu89-inline.patch
new file mode 100644
index 0000000000..6f79c789d0
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.29/uclibc-use-fgnu89-inline.patch
@@ -0,0 +1,34 @@
+Source: http://www.nabble.com/-PATCH--uclibc-extern-inline-td14223616.html
+
+Description:
+
+Needed for uclibc-0.9.29 to compile with gcc 4.3.1
+
+You get this error without
+
+libc/libc_so.a(libc_pthread_init.oS): In function `testandset':
+libc_pthread_init.c:(.text+0x0): multiple definition of `testandset'
+libc/libc_so.a(forward.oS):forward.c:(.text+0x0): first defined here
+libc/libc_so.a(rpc_thread.oS): In function `testandset':
+rpc_thread.c:(.text+0x0): multiple definition of `testandset'
+libc/libc_so.a(forward.oS):forward.c:(.text+0x0): first defined here
+make[1]: *** [lib/libc.so] Error 1
+make: *** [lib/libc.so.0] Error 2
+
+
+---
+ Rules.mak | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: uClibc-0.9.29/Rules.mak
+===================================================================
+--- uClibc-0.9.29.orig/Rules.mak 2008-08-19 13:43:56.000000000 -0700
++++ uClibc-0.9.29/Rules.mak 2008-08-19 13:45:04.000000000 -0700
+@@ -402,6 +402,7 @@ CFLAGS += -DSTATIC
+ endif
+
+ CFLAGS += $(call check_gcc,-std=gnu99,)
++CFLAGS += $(call check_gcc,-fgnu89-inline,)
+
+ LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -shared --warn-common --warn-once -z combreloc
+ # binutils-2.16.1 warns about ignored sections, 2.16.91.0.3 and newer are ok