X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fullong_max.m4;h=61fdce25e28fbd7aaa2bf58cd2b16600e0c18407;hb=e3ad62845a3b14a8a6aac9e966cdf0642e9294fe;hp=49fc3402d4d9706117c2b53afe123b6f8821b304;hpb=2d47f3cd1e2b6ac70efda6a868d97bed866e9d6f;p=gnulib.git diff --git a/m4/ullong_max.m4 b/m4/ullong_max.m4 index 49fc3402d..61fdce25e 100644 --- a/m4/ullong_max.m4 +++ b/m4/ullong_max.m4 @@ -11,36 +11,17 @@ AC_DEFUN([gl_ULLONG_MAX], [ dnl Avoid _AC_COMPUTE_INT-related macros, as they may not work with dnl types wider than long int, due to problems with expr. - AC_CACHE_CHECK([for ULLONG_MAX], gl_cv_ullong_max, - [gl_cv_ullong_max=no - AC_EGREP_CPP([ULLONG_MAX is defined], - [ - #include - #ifdef ULLONG_MAX - "ULLONG_MAX is defined" - #endif - ], - [gl_cv_ullong_max=yes]) - case $gl_cv_ullong_max in - no) - for gl_expr in \ - 18446744073709551615ULL \ - 4722366482869645213695ULL \ - 340282366920938463463374607431768211455ULL - do - AC_TRY_COMPILE([], - [char test[$gl_expr == (unsigned long long int) -1 ? 1 : -1]; - static unsigned long long int i = $gl_expr; - return i && test;], - [gl_cv_ullong_max=$gl_expr]) - test $gl_cv_ullong_max != no && break - done - esac]) - case $gl_cv_ullong_max in - yes | no) ;; - *) - AC_DEFINE_UNQUOTED([ULLONG_MAX], [$gl_cv_ullong_max], - [Define as the maximum value of the type 'unsigned long long int', - if the system doesn't define it, and if the system has that type.]);; - esac + AC_CACHE_CHECK([whether ULONG_MAX < ULLONG_MAX], + [gl_cv_ulong_max_lt_ullong_max], + [AC_COMPILE_IFELSE( + [AC_LANG_BOOL_COMPILE_TRY( + [AC_INCLUDES_DEFAULT], + [[(unsigned long int) -1 < (unsigned long long int) -1]])], + [gl_cv_ulong_max_lt_ullong_max=yes], + [gl_cv_ulong_max_lt_ullong_max=no])]) + if test $gl_cv_ulong_max_lt_ullong_max = yes; then + AC_DEFINE([ULONG_MAX_LT_ULLONG_MAX], 1, + [Define if ULONG_MAX < ULLONG_MAX, even if your compiler does not + support ULLONG_MAX.]) + fi ])