patches/uClibc/0.9.30.1/110-arm_fix_alignment.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Feb 17 21:54:07 2011 +0100 (2011-02-17)
changeset 2301 a3818c3b03e0
permissions -rw-r--r--
internals: fix stripping host binaries

The gcc used by linaro has a version number specific to Linaro, but
identifies itself with its upstream version numbering scheme.

This breaks the strip in the finish step, because the actual gcc version
is not the same as the configured one (eg. 4.5.2 vs. linaro-4.5-2011.02-0).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 Original patch from Gentoo.
     2 
     3 -= BEGIN original header =-
     4 ARMV5 can use STRD and LDRD access instructions but these accesses need to be 
     5 8 byte aligned. The dynamic linker's malloc needs to match this so structures
     6 become 8 byte aligned to void unaligned accesses.
     7 
     8 RP - 14/02/2008
     9 
    10 -= END original header =-
    11 
    12 diff -durN uClibc-0.9.30.orig/ldso/ldso/arm/dl-sysdep.h uClibc-0.9.30/ldso/ldso/arm/dl-sysdep.h
    13 --- uClibc-0.9.30.orig/ldso/ldso/arm/dl-sysdep.h	2008-09-25 10:35:20.000000000 +0200
    14 +++ uClibc-0.9.30/ldso/ldso/arm/dl-sysdep.h	2009-02-07 09:57:59.000000000 +0100
    15 @@ -15,6 +15,8 @@
    16    GOT_BASE[1] = (unsigned long) MODULE; \
    17  }
    18  
    19 +#define DL_MALLOC_ALIGN 8  /* EABI needs 8 byte alignment for STRD LDRD*/
    20 +
    21  static __inline__ unsigned long arm_modulus(unsigned long m, unsigned long p)
    22  {
    23  	unsigned long i,t,inc;