ulonglong.m4 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # ulonglong.m4 serial 6
  2. dnl Copyright (C) 1999-2006 Free Software Foundation, Inc.
  3. dnl This file is free software; the Free Software Foundation
  4. dnl gives unlimited permission to copy and/or distribute it,
  5. dnl with or without modifications, as long as this notice is preserved.
  6. dnl From Paul Eggert.
  7. # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
  8. # This fixes a bug in Autoconf 2.60, but can be removed once we
  9. # assume 2.61 everywhere.
  10. # Note: If the type 'unsigned long long int' exists but is only 32 bits
  11. # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
  12. # will not be defined. In this case you can treat 'unsigned long long int'
  13. # like 'unsigned long int'.
  14. AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
  15. [
  16. AC_CACHE_CHECK([for unsigned long long int],
  17. [ac_cv_type_unsigned_long_long_int],
  18. [AC_LINK_IFELSE(
  19. [AC_LANG_PROGRAM(
  20. [[unsigned long long int ull = 18446744073709551615ULL;
  21. typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1
  22. ? 1 : -1)];
  23. int i = 63;]],
  24. [[unsigned long long int ullmax = 18446744073709551615ull;
  25. return (ull << 63 | ull >> 63 | ull << i | ull >> i
  26. | ullmax / ull | ullmax % ull);]])],
  27. [ac_cv_type_unsigned_long_long_int=yes],
  28. [ac_cv_type_unsigned_long_long_int=no])])
  29. if test $ac_cv_type_unsigned_long_long_int = yes; then
  30. AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1,
  31. [Define to 1 if the system has the type `unsigned long long int'.])
  32. fi
  33. ])
  34. # This macro is obsolescent and should go away soon.
  35. AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG],
  36. [
  37. AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
  38. ac_cv_type_unsigned_long_long=$ac_cv_type_unsigned_long_long_int
  39. if test $ac_cv_type_unsigned_long_long = yes; then
  40. AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
  41. [Define if you have the 'unsigned long long' type.])
  42. fi
  43. ])