diff options
Diffstat (limited to 'packages/uclibc/uclibc-0.9.29')
-rw-r--r-- | packages/uclibc/uclibc-0.9.29/arm_fix_alignment.patch | 19 | ||||
-rw-r--r-- | packages/uclibc/uclibc-0.9.29/uclibc-use-fgnu89-inline.patch | 34 |
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 |