# This has been taken from postgres-7.3.4 local macros # # # PGAC_TYPE_64BIT_INT(TYPE) # ------------------------- # Check if TYPE is a working 64 bit integer type. Set HAVE_TYPE_64 to # yes or no respectively, and define HAVE_TYPE_64 if yes. AC_DEFUN([PGAC_TYPE_64BIT_INT], [define([Ac_define], [translit([have_$1_64], [a-z *], [A-Z_P])])dnl define([Ac_cachevar], [translit([pgac_cv_type_$1_64], [ *], [_p])])dnl AC_CACHE_CHECK([whether $1 is 64 bits], [Ac_cachevar], [AC_TRY_RUN( [ #include typedef $1 int64; /* * These are globals to discourage the compiler from folding all the * arithmetic tests down to compile-time constants. */ int64 a = 20000001; int64 b = 40000005; int does_int64_work() { int64 c,d; if (sizeof(int64) != 8) return 0; /* definitely not the right size */ /* Do perfunctory checks to see if 64-bit arithmetic seems to work */ c = a * b; d = (c + b) / b; if (d != a+1) return 0; return 1; } main() { exit(! does_int64_work()); }], [Ac_cachevar=yes], [Ac_cachevar=no], [Ac_cachevar=no dnl We will do better here with Autoconf 2.50 AC_MSG_WARN([64 bit arithmetic disabled when cross-compiling])])]) Ac_define=$Ac_cachevar if test x"$Ac_cachevar" = xyes ; then AC_DEFINE(Ac_define,, [Set to 1 if `]$1[' is 64 bits]) fi undefine([Ac_define])dnl undefine([Ac_cachevar])dnl ])# PGAC_TYPE_64BIT_INT