X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sdccconf_in.h;h=cd08da4a9ce3afb0e5ee28ad79705a445f6736cf;hb=fd94924a3d743c1c82f4b370d9401d7239172789;hp=bded377be2f5bfe08cee9d78f9473923b3c9177f;hpb=bae75e8a72efa0719c893df3461e191a4d011764;p=fw%2Fsdcc diff --git a/sdccconf_in.h b/sdccconf_in.h index bded377b..cd08da4a 100644 --- a/sdccconf_in.h +++ b/sdccconf_in.h @@ -54,20 +54,25 @@ #undef TYPE_UWORD #undef TYPE_UDWORD -/* find out the endianess of host machine */ -#if __BIG_ENDIAN__ || _BIG_ENDIAN +/* + * find out the endianess of host machine + * in order to be able to make Mac OS X unified binaries + */ +/* This is tricky since these might be defined with a blank replacement list */ +/* such as on SPARC Solaris. However, configure gets it right, so it's ok */ +/* that (_BIG_ENDIAN+0) is false, even though it is defined. */ +#if (__BIG_ENDIAN__+0) || (_BIG_ENDIAN+0) /* 1) trust the compiler */ # define WORDS_BIGENDIAN 1 #elif __LITTLE_ENDIAN__ -/* just in case ... */ -#undef WORDS_BIGENDIAN +/* do nothing */ #elif (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) /* 2) trust the header files */ # if BYTE_ORDER == BIG_ENDIAN # define WORDS_BIGENDIAN 1 # endif #else -/* 3) assume that host machine has the same endianess as the build machine */ +/* 3) trust the configure; this actually doesn't work for unified Mac OS X binaries :-( */ # undef BUILD_WORDS_BIGENDIAN # if (defined BUILD_WORDS_BIGENDIAN && BUILD_WORDS_BIGENDIAN) # define WORDS_BIGENDIAN 1