From 127ea18f48189d57987b46be30cfa036251bf7e5 Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Tue, 10 Feb 2004 19:55:45 +0000 Subject: [PATCH] Add configure support for determining UINT64_FORMAT, the appropriate snprintf format for uint64 items. --- configure | 14 +++++++++++--- configure.in | 13 +++++++++---- src/include/pg_config.h.in | 4 ++++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/configure b/configure index 43d4fc4e8f5..88f763e8318 100755 --- a/configure +++ b/configure @@ -13659,9 +13659,8 @@ fi # If we found "long int" is 64 bits, assume snprintf handles it. If # we found we need to use "long long int", better check. We cope with -# snprintfs that use either %lld, %qd, or %I64d as the format. If -# neither works, fall back to our own snprintf emulation (which we -# know uses %lld). +# snprintfs that use %lld, %qd, or %I64d as the format. If none of these +# work, fall back to our own snprintf emulation (which we know uses %lld). if test "$HAVE_LONG_LONG_INT_64" = yes ; then if test $pgac_need_repl_snprintf = no; then @@ -13744,10 +13743,13 @@ esac # Here if we previously decided we needed to use our own snprintf LONG_LONG_INT_FORMAT='%lld' fi + LONG_LONG_UINT_FORMAT=`echo "$LONG_LONG_INT_FORMAT" | sed 's/d$/u/'` INT64_FORMAT="\"$LONG_LONG_INT_FORMAT\"" + UINT64_FORMAT="\"$LONG_LONG_UINT_FORMAT\"" else # Here if we are not using 'long long int' at all INT64_FORMAT='"%ld"' + UINT64_FORMAT='"%lu"' fi @@ -13756,6 +13758,12 @@ cat >>confdefs.h <<_ACEOF _ACEOF + +cat >>confdefs.h <<_ACEOF +#define UINT64_FORMAT $UINT64_FORMAT +_ACEOF + + if test $pgac_need_repl_snprintf = yes; then LIBOBJS="$LIBOBJS snprintf.$ac_objext" fi diff --git a/configure.in b/configure.in index 6f90cbfa5ad..3f7994fbbf4 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $PostgreSQL: pgsql/configure.in,v 1.313 2004/02/02 22:20:32 momjian Exp $ +dnl $PostgreSQL: pgsql/configure.in,v 1.314 2004/02/10 19:55:45 tgl Exp $ dnl dnl Developers, please strive to achieve this order: dnl @@ -1063,9 +1063,8 @@ fi # If we found "long int" is 64 bits, assume snprintf handles it. If # we found we need to use "long long int", better check. We cope with -# snprintfs that use either %lld, %qd, or %I64d as the format. If -# neither works, fall back to our own snprintf emulation (which we -# know uses %lld). +# snprintfs that use %lld, %qd, or %I64d as the format. If none of these +# work, fall back to our own snprintf emulation (which we know uses %lld). if test "$HAVE_LONG_LONG_INT_64" = yes ; then if test $pgac_need_repl_snprintf = no; then @@ -1079,15 +1078,21 @@ if test "$HAVE_LONG_LONG_INT_64" = yes ; then # Here if we previously decided we needed to use our own snprintf LONG_LONG_INT_FORMAT='%lld' fi + LONG_LONG_UINT_FORMAT=`echo "$LONG_LONG_INT_FORMAT" | sed 's/d$/u/'` INT64_FORMAT="\"$LONG_LONG_INT_FORMAT\"" + UINT64_FORMAT="\"$LONG_LONG_UINT_FORMAT\"" else # Here if we are not using 'long long int' at all INT64_FORMAT='"%ld"' + UINT64_FORMAT='"%lu"' fi AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT, [Define to the appropriate snprintf format for 64-bit ints, if any.]) +AC_DEFINE_UNQUOTED(UINT64_FORMAT, $UINT64_FORMAT, + [Define to the appropriate snprintf format for unsigned 64-bit ints, if any.]) + if test $pgac_need_repl_snprintf = yes; then AC_LIBOBJ(snprintf) fi diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index b53fed22572..3b3cc095410 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -588,6 +588,10 @@ /* Define to 1 if your <sys/time.h> declares `struct tm'. */ #undef TM_IN_SYS_TIME +/* Define to the appropriate snprintf format for unsigned 64-bit ints, if any. + */ +#undef UINT64_FORMAT + /* Define to 1 to build with assertion checks. (--enable-cassert) */ #undef USE_ASSERT_CHECKING -- GitLab