X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sdccconf_in.h;h=cd08da4a9ce3afb0e5ee28ad79705a445f6736cf;hb=bf919669224dcb6abe41c10cfdce48b87b42504b;hp=ac5ca9234b30690074bb478ab7109944d832bd46;hpb=a33e37e3afe5391236def67e506c9a8dec7ce436;p=fw%2Fsdcc diff --git a/sdccconf_in.h b/sdccconf_in.h index ac5ca923..cd08da4a 100644 --- a/sdccconf_in.h +++ b/sdccconf_in.h @@ -39,8 +39,6 @@ #undef STD_DS400_LIB #undef STD_XA51_LIB -#undef HAVE_SYS_SOCKET_H - #undef HAVE_STRERROR #undef HAVE_VSNPRINTF #undef HAVE_SNPRINTF @@ -56,7 +54,31 @@ #undef TYPE_UWORD #undef TYPE_UDWORD -#undef WORDS_BIGENDIAN +/* + * 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__ +/* 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) 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 +# endif +/* 4) assume that host is a little endian machine */ +#endif #undef OPT_DISABLE_MCS51 #undef OPT_DISABLE_GBZ80