--- gmp-4.1.4/gmp-impl.h.orig 2004-04-22 23:59:53.000000000 +0000 +++ gmp-4.1.4/gmp-impl.h 2006-11-28 11:17:28.000000000 +0000 @@ -2466,7 +2466,7 @@ /* Define ieee_double_extract and _GMP_IEEE_FLOATS. */ -#if (defined (__arm__) && (defined (__ARMWEL__) || defined (__linux__))) +#if (defined (__arm__) && !defined(__ARMEB__) && !defined(__VFP_FP__) && (defined (__ARMWEL__) || defined (__linux__))) /* Special case for little endian ARM since floats remain in big-endian. */ #define _GMP_IEEE_FLOATS 1 union ieee_double_extract @@ -2483,6 +2483,7 @@ #else #if defined (_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) \ || defined (__alpha) \ + || (defined (__arm__) && !defined(__ARMEB__) && defined(__VFP_FP__)) \ || defined (__clipper__) \ || defined (__cris) \ || defined (__i386__) \ @@ -2524,7 +2525,7 @@ #else #if defined (_BIG_ENDIAN) || defined (__BIG_ENDIAN__) \ || defined (__a29k__) || defined (_AM29K) \ - || defined (__arm__) \ + || (defined (__arm__) && defined (__ARMEB__)) \ || (defined (__convex__) && defined (_IEEE_FLOAT_)) \ || defined (_CRAYMPP) || defined (_CRAYIEEE) \ || defined (__i370__) || defined (__mvs__) \