crosstool-ng/patches/uClibc/0.9.30.2/110-arm_fix_alignment.patch
Joachim Nilsson 9bfbd1e3d8 Port uClibc patches to 0.9.30.2
Some patches from 0.9.30.1 now applied upstream.  The reminder have
been only slightly modified to apply cleanly to the new base.

Signed-off-by: Joachim Nilsson <jocke@vmlinux.org>
2010-01-14 23:06:48 +01:00

26 lines
903 B
Diff

Original patch from Gentoo.
-= BEGIN original header =-
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
-= END original header =-
Modified slightly for uClibc-0.9.30.2 by Joachim Nilsson <jocke@vmlinux.org>
diff -durN uClibc-0.9.30.orig/ldso/ldso/arm/dl-sysdep.h uClibc-0.9.30/ldso/ldso/arm/dl-sysdep.h
--- uClibc-0.9.30.orig/ldso/ldso/arm/dl-sysdep.h 2008-09-25 10:35:20.000000000 +0200
+++ uClibc-0.9.30/ldso/ldso/arm/dl-sysdep.h 2009-02-07 09:57:59.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 __always_inline unsigned long arm_modulus(unsigned long m, unsigned long p)
{
unsigned long i,t,inc;