diff --git a/cf/krb-bigendian.m4 b/cf/krb-bigendian.m4 index 5d4fc6aa4..b1e349e7b 100644 --- a/cf/krb-bigendian.m4 +++ b/cf/krb-bigendian.m4 @@ -22,34 +22,30 @@ krb_cv_c_bigendian_compile, #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN bogus endian macros #endif], krb_cv_c_bigendian_compile=yes, krb_cv_c_bigendian_compile=no)]) -if test "$krb_cv_c_bigendian_compile" = "no"; then - AC_CACHE_CHECK(whether byte ordering is bigendian, krb_cv_c_bigendian,[ - if test "$krb_cv_c_bigendian" = ""; then - krb_cv_c_bigendian=unknown - fi - AC_TRY_COMPILE([ +AC_CACHE_CHECK(whether byte ordering is bigendian, krb_cv_c_bigendian,[ + if test "$krb_cv_c_bigendian_compile" = "yes"; then + AC_TRY_COMPILE([ #include #include ],[ #if BYTE_ORDER != BIG_ENDIAN not big endian #endif], krb_cv_c_bigendian=yes, krb_cv_c_bigendian=no) - if test "$krb_cv_c_bigendian" = "unknown"; then + else AC_TRY_RUN([main () { /* Are we little or big endian? From Harbison&Steele. */ union { long l; char c[sizeof (long)]; - } u; - u.l = 1; - exit (u.c[sizeof (long) - 1] == 1); - }], krb_cv_c_bigendian=no, krb_cv_c_bigendian=yes, - AC_MSG_ERROR([specify either --enable-bigendian or --enable-littleendian])) - fi - ]) - if test "$krb_cv_c_bigendian" = "yes"; then - AC_DEFINE(WORDS_BIGENDIAN, 1, [define if target is big endian])dnl + } u; + u.l = 1; + exit (u.c[sizeof (long) - 1] == 1); + }], krb_cv_c_bigendian=no, krb_cv_c_bigendian=yes, + AC_MSG_ERROR([specify either --enable-bigendian or --enable-littleendian])) fi +]) +if test "$krb_cv_c_bigendian" = "yes"; then + AC_DEFINE(WORDS_BIGENDIAN, 1, [define if target is big endian])dnl fi if test "$krb_cv_c_bigendian_compile" = "yes"; then AC_DEFINE(ENDIANESS_IN_SYS_PARAM_H, 1, [define if sys/param.h defines the endiness])dnl