Re: GHC armel build
The code in question is this.
--- ghc6-6.6.1/rts/gmp/gmp-impl.h:821:
/* Define ieee_double_extract and _GMP_IEEE_FLOATS. */
#if (defined (__arm__) && (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
{
struct
{
unsigned int manh:20;
unsigned int exp:11;
unsigned int sig:1;
unsigned int manl:32;
} s;
double d;
};
#else
#if defined (_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) \
|| defined (__alpha) \
|| defined (__clipper__) \
|| defined (__cris) \
|| defined (__i386__) \
|| defined (__i860__) \
|| defined (__i960__) \
|| defined (MIPSEL) || defined (_MIPSEL) \
|| defined (__ns32000__) \
|| defined (__WINNT) || defined (_WIN32)
#define _GMP_IEEE_FLOATS 1
union ieee_double_extract
{
struct
{
unsigned int manl:32;
unsigned int manh:20;
unsigned int exp:11;
unsigned int sig:1;
} s;
double d;
};
#else /* Need this as an #else since the tests aren't made exclusive. */
#if defined (_BIG_ENDIAN) || defined (__BIG_ENDIAN__) \
|| defined (__a29k__) || defined (_AM29K) \
|| defined (__arm__) \
[...]
#define _GMP_IEEE_FLOATS 1
union ieee_double_extract
{
struct
{
unsigned int sig:1;
unsigned int exp:11;
unsigned int manh:20;
unsigned int manl:32;
} s;
double d;
};
#endif
#endif
#endif
Reply to: