From e458ebfd21374588bee185ba0fc2e5eba03da134 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 23 Mar 2001 18:42:12 +0000 Subject: [PATCH] When using 'long long int' for int64 type, check to see if the compiler accepts nnnLL syntax for long long constants. If so, decorate the CRC64 constants with LL to avoid warnings and/or erroneous results from certain non-standards-compliant compilers. --- configure | 121 +++++++++------ configure.in | 13 ++ src/backend/utils/hash/pg_crc.c | 258 ++++++++++++++++---------------- src/include/config.h.in | 5 +- src/include/utils/pg_crc.h | 13 +- 5 files changed, 230 insertions(+), 180 deletions(-) diff --git a/configure b/configure index 4c96fac730..41a85aaf3d 100755 --- a/configure +++ b/configure @@ -6996,10 +6996,37 @@ fi +if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + cat >> confdefs.h <<\EOF +#define HAVE_LL_CONSTANTS 1 +EOF + +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -f conftest* +fi + + + if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then if [ x$SNPRINTF = x ] ; then echo $ac_n "checking whether snprintf handles 'long long int' as %lld""... $ac_c" 1>&6 -echo "configure:7003: checking whether snprintf handles 'long long int' as %lld" >&5 +echo "configure:7030: checking whether snprintf handles 'long long int' as %lld" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 # Force usage of our own snprintf, since we cannot test foreign snprintf @@ -7008,7 +7035,7 @@ echo "configure:7003: checking whether snprintf handles 'long long int' as %lld" else cat > conftest.$ac_ext < typedef long long int int64; @@ -7035,7 +7062,7 @@ main() { exit(! does_int64_snprintf_work()); } EOF -if { (eval echo configure:7039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 INT64_FORMAT='"%lld"' @@ -7046,7 +7073,7 @@ else rm -fr conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking whether snprintf handles 'long long int' as %qd""... $ac_c" 1>&6 -echo "configure:7050: checking whether snprintf handles 'long long int' as %qd" >&5 +echo "configure:7077: checking whether snprintf handles 'long long int' as %qd" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 # Force usage of our own snprintf, since we cannot test foreign snprintf @@ -7055,7 +7082,7 @@ echo "configure:7050: checking whether snprintf handles 'long long int' as %qd" else cat > conftest.$ac_ext < typedef long long int int64; @@ -7082,7 +7109,7 @@ main() { exit(! does_int64_snprintf_work()); } EOF -if { (eval echo configure:7086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 INT64_FORMAT='"%qd"' @@ -7122,12 +7149,12 @@ EOF for ac_func in strtoll strtoq do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7126: checking for $ac_func" >&5 +echo "configure:7153: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7177,12 +7204,12 @@ done for ac_func in strtoull strtouq do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7181: checking for $ac_func" >&5 +echo "configure:7208: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7231,12 +7258,12 @@ done echo $ac_n "checking for atexit""... $ac_c" 1>&6 -echo "configure:7235: checking for atexit" >&5 +echo "configure:7262: checking for atexit" >&5 if eval "test \"`echo '$''{'ac_cv_func_atexit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_atexit=yes" else @@ -7282,12 +7309,12 @@ else for ac_func in on_exit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7286: checking for $ac_func" >&5 +echo "configure:7313: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7343,7 +7370,7 @@ fi echo $ac_n "checking size of unsigned long""... $ac_c" 1>&6 -echo "configure:7347: checking size of unsigned long" >&5 +echo "configure:7374: checking size of unsigned long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_unsigned_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7351,7 +7378,7 @@ else ac_cv_sizeof_unsigned_long=4 else cat > conftest.$ac_ext < main() @@ -7362,7 +7389,7 @@ main() exit(0); } EOF -if { (eval echo configure:7366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7393: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_unsigned_long=`cat conftestval` else @@ -7388,7 +7415,7 @@ EOF echo $ac_n "checking alignment of short""... $ac_c" 1>&6 -echo "configure:7392: checking alignment of short" >&5 +echo "configure:7419: checking alignment of short" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7396,7 +7423,7 @@ else pgac_cv_alignof_short='sizeof(short)' else cat > conftest.$ac_ext < struct { char filler; short field; } mystruct; @@ -7408,7 +7435,7 @@ main() exit(0); } EOF -if { (eval echo configure:7412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then pgac_cv_alignof_short=`cat conftestval` else @@ -7428,7 +7455,7 @@ EOF echo $ac_n "checking alignment of int""... $ac_c" 1>&6 -echo "configure:7432: checking alignment of int" >&5 +echo "configure:7459: checking alignment of int" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7436,7 +7463,7 @@ else pgac_cv_alignof_int='sizeof(int)' else cat > conftest.$ac_ext < struct { char filler; int field; } mystruct; @@ -7448,7 +7475,7 @@ main() exit(0); } EOF -if { (eval echo configure:7452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then pgac_cv_alignof_int=`cat conftestval` else @@ -7468,7 +7495,7 @@ EOF echo $ac_n "checking alignment of long""... $ac_c" 1>&6 -echo "configure:7472: checking alignment of long" >&5 +echo "configure:7499: checking alignment of long" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7476,7 +7503,7 @@ else pgac_cv_alignof_long='sizeof(long)' else cat > conftest.$ac_ext < struct { char filler; long field; } mystruct; @@ -7488,7 +7515,7 @@ main() exit(0); } EOF -if { (eval echo configure:7492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then pgac_cv_alignof_long=`cat conftestval` else @@ -7509,7 +7536,7 @@ EOF if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then echo $ac_n "checking alignment of long long int""... $ac_c" 1>&6 -echo "configure:7513: checking alignment of long long int" >&5 +echo "configure:7540: checking alignment of long long int" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_long_long_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7517,7 +7544,7 @@ else pgac_cv_alignof_long_long_int='sizeof(long long int)' else cat > conftest.$ac_ext < struct { char filler; long long int field; } mystruct; @@ -7529,7 +7556,7 @@ main() exit(0); } EOF -if { (eval echo configure:7533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then pgac_cv_alignof_long_long_int=`cat conftestval` else @@ -7550,7 +7577,7 @@ EOF fi echo $ac_n "checking alignment of double""... $ac_c" 1>&6 -echo "configure:7554: checking alignment of double" >&5 +echo "configure:7581: checking alignment of double" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7558,7 +7585,7 @@ else pgac_cv_alignof_double='sizeof(double)' else cat > conftest.$ac_ext < struct { char filler; double field; } mystruct; @@ -7570,7 +7597,7 @@ main() exit(0); } EOF -if { (eval echo configure:7574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then pgac_cv_alignof_double=`cat conftestval` else @@ -7608,12 +7635,12 @@ EOF echo $ac_n "checking for POSIX signal interface""... $ac_c" 1>&6 -echo "configure:7612: checking for POSIX signal interface" >&5 +echo "configure:7639: checking for POSIX signal interface" >&5 if eval "test \"`echo '$''{'pgac_cv_func_posix_signals'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -7624,7 +7651,7 @@ act.sa_flags = SA_RESTART; sigaction(0, &act, &oact); ; return 0; } EOF -if { (eval echo configure:7628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* pgac_cv_func_posix_signals=yes else @@ -7654,7 +7681,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7658: checking for $ac_word" >&5 +echo "configure:7685: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7690,7 +7717,7 @@ test -n "$TCLSH" && break done echo $ac_n "checking for tclConfig.sh""... $ac_c" 1>&6 -echo "configure:7694: checking for tclConfig.sh" >&5 +echo "configure:7721: checking for tclConfig.sh" >&5 # Let user override test if test -z "$TCL_CONFIG_SH"; then pgac_test_dirs="$with_tclconfig" @@ -7723,7 +7750,7 @@ fi # Check for Tk configuration script tkConfig.sh if test "$with_tk" = yes; then echo $ac_n "checking for tkConfig.sh""... $ac_c" 1>&6 -echo "configure:7727: checking for tkConfig.sh" >&5 +echo "configure:7754: checking for tkConfig.sh" >&5 # Let user override test if test -z "$TK_CONFIG_SH"; then pgac_test_dirs="$with_tkconfig $with_tclconfig" @@ -7762,7 +7789,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7766: checking for $ac_word" >&5 +echo "configure:7793: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NSGMLS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7798,7 +7825,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7802: checking for $ac_word" >&5 +echo "configure:7829: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_JADE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7829,7 +7856,7 @@ done echo $ac_n "checking for DocBook V3.1""... $ac_c" 1>&6 -echo "configure:7833: checking for DocBook V3.1" >&5 +echo "configure:7860: checking for DocBook V3.1" >&5 if eval "test \"`echo '$''{'pgac_cv_check_docbook'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7862,7 +7889,7 @@ have_docbook=$pgac_cv_check_docbook echo $ac_n "checking for DocBook stylesheets""... $ac_c" 1>&6 -echo "configure:7866: checking for DocBook stylesheets" >&5 +echo "configure:7893: checking for DocBook stylesheets" >&5 if eval "test \"`echo '$''{'pgac_cv_path_stylesheets'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7901,7 +7928,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7905: checking for $ac_word" >&5 +echo "configure:7932: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_SGMLSPL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else diff --git a/configure.in b/configure.in index f82e15c7e4..a40695b174 100644 --- a/configure.in +++ b/configure.in @@ -979,6 +979,19 @@ if test x"$HAVE_LONG_INT_64" = x"no" ; then fi +dnl If we need to use "long long int", figure out whether nnnLL notation works. + +if [[ x"$HAVE_LONG_LONG_INT_64" = xyes ]] ; then + AC_TRY_COMPILE([ +#define INT64CONST(x) x##LL +long long int foo = INT64CONST(0x1234567890123456); +], + [], + [AC_DEFINE(HAVE_LL_CONSTANTS)], + []) +fi + + dnl If we found "long int" is 64 bits, assume snprintf handles it. dnl If we found we need to use "long long int", better check. dnl We cope with snprintfs that use either %lld or %qd as the format. diff --git a/src/backend/utils/hash/pg_crc.c b/src/backend/utils/hash/pg_crc.c index 22469bf5f5..9ad712c066 100644 --- a/src/backend/utils/hash/pg_crc.c +++ b/src/backend/utils/hash/pg_crc.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/hash/pg_crc.c,v 1.2 2001/03/22 03:59:59 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/hash/pg_crc.c,v 1.3 2001/03/23 18:42:12 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -284,134 +284,134 @@ const uint32 crc_table1[256] = { #else /* int64 works */ const uint64 crc_table[256] = { - 0x0000000000000000, 0x42F0E1EBA9EA3693, - 0x85E1C3D753D46D26, 0xC711223CFA3E5BB5, - 0x493366450E42ECDF, 0x0BC387AEA7A8DA4C, - 0xCCD2A5925D9681F9, 0x8E224479F47CB76A, - 0x9266CC8A1C85D9BE, 0xD0962D61B56FEF2D, - 0x17870F5D4F51B498, 0x5577EEB6E6BB820B, - 0xDB55AACF12C73561, 0x99A54B24BB2D03F2, - 0x5EB4691841135847, 0x1C4488F3E8F96ED4, - 0x663D78FF90E185EF, 0x24CD9914390BB37C, - 0xE3DCBB28C335E8C9, 0xA12C5AC36ADFDE5A, - 0x2F0E1EBA9EA36930, 0x6DFEFF5137495FA3, - 0xAAEFDD6DCD770416, 0xE81F3C86649D3285, - 0xF45BB4758C645C51, 0xB6AB559E258E6AC2, - 0x71BA77A2DFB03177, 0x334A9649765A07E4, - 0xBD68D2308226B08E, 0xFF9833DB2BCC861D, - 0x388911E7D1F2DDA8, 0x7A79F00C7818EB3B, - 0xCC7AF1FF21C30BDE, 0x8E8A101488293D4D, - 0x499B3228721766F8, 0x0B6BD3C3DBFD506B, - 0x854997BA2F81E701, 0xC7B97651866BD192, - 0x00A8546D7C558A27, 0x4258B586D5BFBCB4, - 0x5E1C3D753D46D260, 0x1CECDC9E94ACE4F3, - 0xDBFDFEA26E92BF46, 0x990D1F49C77889D5, - 0x172F5B3033043EBF, 0x55DFBADB9AEE082C, - 0x92CE98E760D05399, 0xD03E790CC93A650A, - 0xAA478900B1228E31, 0xE8B768EB18C8B8A2, - 0x2FA64AD7E2F6E317, 0x6D56AB3C4B1CD584, - 0xE374EF45BF6062EE, 0xA1840EAE168A547D, - 0x66952C92ECB40FC8, 0x2465CD79455E395B, - 0x3821458AADA7578F, 0x7AD1A461044D611C, - 0xBDC0865DFE733AA9, 0xFF3067B657990C3A, - 0x711223CFA3E5BB50, 0x33E2C2240A0F8DC3, - 0xF4F3E018F031D676, 0xB60301F359DBE0E5, - 0xDA050215EA6C212F, 0x98F5E3FE438617BC, - 0x5FE4C1C2B9B84C09, 0x1D14202910527A9A, - 0x93366450E42ECDF0, 0xD1C685BB4DC4FB63, - 0x16D7A787B7FAA0D6, 0x5427466C1E109645, - 0x4863CE9FF6E9F891, 0x0A932F745F03CE02, - 0xCD820D48A53D95B7, 0x8F72ECA30CD7A324, - 0x0150A8DAF8AB144E, 0x43A04931514122DD, - 0x84B16B0DAB7F7968, 0xC6418AE602954FFB, - 0xBC387AEA7A8DA4C0, 0xFEC89B01D3679253, - 0x39D9B93D2959C9E6, 0x7B2958D680B3FF75, - 0xF50B1CAF74CF481F, 0xB7FBFD44DD257E8C, - 0x70EADF78271B2539, 0x321A3E938EF113AA, - 0x2E5EB66066087D7E, 0x6CAE578BCFE24BED, - 0xABBF75B735DC1058, 0xE94F945C9C3626CB, - 0x676DD025684A91A1, 0x259D31CEC1A0A732, - 0xE28C13F23B9EFC87, 0xA07CF2199274CA14, - 0x167FF3EACBAF2AF1, 0x548F120162451C62, - 0x939E303D987B47D7, 0xD16ED1D631917144, - 0x5F4C95AFC5EDC62E, 0x1DBC74446C07F0BD, - 0xDAAD56789639AB08, 0x985DB7933FD39D9B, - 0x84193F60D72AF34F, 0xC6E9DE8B7EC0C5DC, - 0x01F8FCB784FE9E69, 0x43081D5C2D14A8FA, - 0xCD2A5925D9681F90, 0x8FDAB8CE70822903, - 0x48CB9AF28ABC72B6, 0x0A3B7B1923564425, - 0x70428B155B4EAF1E, 0x32B26AFEF2A4998D, - 0xF5A348C2089AC238, 0xB753A929A170F4AB, - 0x3971ED50550C43C1, 0x7B810CBBFCE67552, - 0xBC902E8706D82EE7, 0xFE60CF6CAF321874, - 0xE224479F47CB76A0, 0xA0D4A674EE214033, - 0x67C58448141F1B86, 0x253565A3BDF52D15, - 0xAB1721DA49899A7F, 0xE9E7C031E063ACEC, - 0x2EF6E20D1A5DF759, 0x6C0603E6B3B7C1CA, - 0xF6FAE5C07D3274CD, 0xB40A042BD4D8425E, - 0x731B26172EE619EB, 0x31EBC7FC870C2F78, - 0xBFC9838573709812, 0xFD39626EDA9AAE81, - 0x3A28405220A4F534, 0x78D8A1B9894EC3A7, - 0x649C294A61B7AD73, 0x266CC8A1C85D9BE0, - 0xE17DEA9D3263C055, 0xA38D0B769B89F6C6, - 0x2DAF4F0F6FF541AC, 0x6F5FAEE4C61F773F, - 0xA84E8CD83C212C8A, 0xEABE6D3395CB1A19, - 0x90C79D3FEDD3F122, 0xD2377CD44439C7B1, - 0x15265EE8BE079C04, 0x57D6BF0317EDAA97, - 0xD9F4FB7AE3911DFD, 0x9B041A914A7B2B6E, - 0x5C1538ADB04570DB, 0x1EE5D94619AF4648, - 0x02A151B5F156289C, 0x4051B05E58BC1E0F, - 0x87409262A28245BA, 0xC5B073890B687329, - 0x4B9237F0FF14C443, 0x0962D61B56FEF2D0, - 0xCE73F427ACC0A965, 0x8C8315CC052A9FF6, - 0x3A80143F5CF17F13, 0x7870F5D4F51B4980, - 0xBF61D7E80F251235, 0xFD913603A6CF24A6, - 0x73B3727A52B393CC, 0x31439391FB59A55F, - 0xF652B1AD0167FEEA, 0xB4A25046A88DC879, - 0xA8E6D8B54074A6AD, 0xEA16395EE99E903E, - 0x2D071B6213A0CB8B, 0x6FF7FA89BA4AFD18, - 0xE1D5BEF04E364A72, 0xA3255F1BE7DC7CE1, - 0x64347D271DE22754, 0x26C49CCCB40811C7, - 0x5CBD6CC0CC10FAFC, 0x1E4D8D2B65FACC6F, - 0xD95CAF179FC497DA, 0x9BAC4EFC362EA149, - 0x158E0A85C2521623, 0x577EEB6E6BB820B0, - 0x906FC95291867B05, 0xD29F28B9386C4D96, - 0xCEDBA04AD0952342, 0x8C2B41A1797F15D1, - 0x4B3A639D83414E64, 0x09CA82762AAB78F7, - 0x87E8C60FDED7CF9D, 0xC51827E4773DF90E, - 0x020905D88D03A2BB, 0x40F9E43324E99428, - 0x2CFFE7D5975E55E2, 0x6E0F063E3EB46371, - 0xA91E2402C48A38C4, 0xEBEEC5E96D600E57, - 0x65CC8190991CB93D, 0x273C607B30F68FAE, - 0xE02D4247CAC8D41B, 0xA2DDA3AC6322E288, - 0xBE992B5F8BDB8C5C, 0xFC69CAB42231BACF, - 0x3B78E888D80FE17A, 0x7988096371E5D7E9, - 0xF7AA4D1A85996083, 0xB55AACF12C735610, - 0x724B8ECDD64D0DA5, 0x30BB6F267FA73B36, - 0x4AC29F2A07BFD00D, 0x08327EC1AE55E69E, - 0xCF235CFD546BBD2B, 0x8DD3BD16FD818BB8, - 0x03F1F96F09FD3CD2, 0x41011884A0170A41, - 0x86103AB85A2951F4, 0xC4E0DB53F3C36767, - 0xD8A453A01B3A09B3, 0x9A54B24BB2D03F20, - 0x5D45907748EE6495, 0x1FB5719CE1045206, - 0x919735E51578E56C, 0xD367D40EBC92D3FF, - 0x1476F63246AC884A, 0x568617D9EF46BED9, - 0xE085162AB69D5E3C, 0xA275F7C11F7768AF, - 0x6564D5FDE549331A, 0x279434164CA30589, - 0xA9B6706FB8DFB2E3, 0xEB46918411358470, - 0x2C57B3B8EB0BDFC5, 0x6EA7525342E1E956, - 0x72E3DAA0AA188782, 0x30133B4B03F2B111, - 0xF7021977F9CCEAA4, 0xB5F2F89C5026DC37, - 0x3BD0BCE5A45A6B5D, 0x79205D0E0DB05DCE, - 0xBE317F32F78E067B, 0xFCC19ED95E6430E8, - 0x86B86ED5267CDBD3, 0xC4488F3E8F96ED40, - 0x0359AD0275A8B6F5, 0x41A94CE9DC428066, - 0xCF8B0890283E370C, 0x8D7BE97B81D4019F, - 0x4A6ACB477BEA5A2A, 0x089A2AACD2006CB9, - 0x14DEA25F3AF9026D, 0x562E43B4931334FE, - 0x913F6188692D6F4B, 0xD3CF8063C0C759D8, - 0x5DEDC41A34BBEEB2, 0x1F1D25F19D51D821, - 0xD80C07CD676F8394, 0x9AFCE626CE85B507 + INT64CONST(0x0000000000000000), INT64CONST(0x42F0E1EBA9EA3693), + INT64CONST(0x85E1C3D753D46D26), INT64CONST(0xC711223CFA3E5BB5), + INT64CONST(0x493366450E42ECDF), INT64CONST(0x0BC387AEA7A8DA4C), + INT64CONST(0xCCD2A5925D9681F9), INT64CONST(0x8E224479F47CB76A), + INT64CONST(0x9266CC8A1C85D9BE), INT64CONST(0xD0962D61B56FEF2D), + INT64CONST(0x17870F5D4F51B498), INT64CONST(0x5577EEB6E6BB820B), + INT64CONST(0xDB55AACF12C73561), INT64CONST(0x99A54B24BB2D03F2), + INT64CONST(0x5EB4691841135847), INT64CONST(0x1C4488F3E8F96ED4), + INT64CONST(0x663D78FF90E185EF), INT64CONST(0x24CD9914390BB37C), + INT64CONST(0xE3DCBB28C335E8C9), INT64CONST(0xA12C5AC36ADFDE5A), + INT64CONST(0x2F0E1EBA9EA36930), INT64CONST(0x6DFEFF5137495FA3), + INT64CONST(0xAAEFDD6DCD770416), INT64CONST(0xE81F3C86649D3285), + INT64CONST(0xF45BB4758C645C51), INT64CONST(0xB6AB559E258E6AC2), + INT64CONST(0x71BA77A2DFB03177), INT64CONST(0x334A9649765A07E4), + INT64CONST(0xBD68D2308226B08E), INT64CONST(0xFF9833DB2BCC861D), + INT64CONST(0x388911E7D1F2DDA8), INT64CONST(0x7A79F00C7818EB3B), + INT64CONST(0xCC7AF1FF21C30BDE), INT64CONST(0x8E8A101488293D4D), + INT64CONST(0x499B3228721766F8), INT64CONST(0x0B6BD3C3DBFD506B), + INT64CONST(0x854997BA2F81E701), INT64CONST(0xC7B97651866BD192), + INT64CONST(0x00A8546D7C558A27), INT64CONST(0x4258B586D5BFBCB4), + INT64CONST(0x5E1C3D753D46D260), INT64CONST(0x1CECDC9E94ACE4F3), + INT64CONST(0xDBFDFEA26E92BF46), INT64CONST(0x990D1F49C77889D5), + INT64CONST(0x172F5B3033043EBF), INT64CONST(0x55DFBADB9AEE082C), + INT64CONST(0x92CE98E760D05399), INT64CONST(0xD03E790CC93A650A), + INT64CONST(0xAA478900B1228E31), INT64CONST(0xE8B768EB18C8B8A2), + INT64CONST(0x2FA64AD7E2F6E317), INT64CONST(0x6D56AB3C4B1CD584), + INT64CONST(0xE374EF45BF6062EE), INT64CONST(0xA1840EAE168A547D), + INT64CONST(0x66952C92ECB40FC8), INT64CONST(0x2465CD79455E395B), + INT64CONST(0x3821458AADA7578F), INT64CONST(0x7AD1A461044D611C), + INT64CONST(0xBDC0865DFE733AA9), INT64CONST(0xFF3067B657990C3A), + INT64CONST(0x711223CFA3E5BB50), INT64CONST(0x33E2C2240A0F8DC3), + INT64CONST(0xF4F3E018F031D676), INT64CONST(0xB60301F359DBE0E5), + INT64CONST(0xDA050215EA6C212F), INT64CONST(0x98F5E3FE438617BC), + INT64CONST(0x5FE4C1C2B9B84C09), INT64CONST(0x1D14202910527A9A), + INT64CONST(0x93366450E42ECDF0), INT64CONST(0xD1C685BB4DC4FB63), + INT64CONST(0x16D7A787B7FAA0D6), INT64CONST(0x5427466C1E109645), + INT64CONST(0x4863CE9FF6E9F891), INT64CONST(0x0A932F745F03CE02), + INT64CONST(0xCD820D48A53D95B7), INT64CONST(0x8F72ECA30CD7A324), + INT64CONST(0x0150A8DAF8AB144E), INT64CONST(0x43A04931514122DD), + INT64CONST(0x84B16B0DAB7F7968), INT64CONST(0xC6418AE602954FFB), + INT64CONST(0xBC387AEA7A8DA4C0), INT64CONST(0xFEC89B01D3679253), + INT64CONST(0x39D9B93D2959C9E6), INT64CONST(0x7B2958D680B3FF75), + INT64CONST(0xF50B1CAF74CF481F), INT64CONST(0xB7FBFD44DD257E8C), + INT64CONST(0x70EADF78271B2539), INT64CONST(0x321A3E938EF113AA), + INT64CONST(0x2E5EB66066087D7E), INT64CONST(0x6CAE578BCFE24BED), + INT64CONST(0xABBF75B735DC1058), INT64CONST(0xE94F945C9C3626CB), + INT64CONST(0x676DD025684A91A1), INT64CONST(0x259D31CEC1A0A732), + INT64CONST(0xE28C13F23B9EFC87), INT64CONST(0xA07CF2199274CA14), + INT64CONST(0x167FF3EACBAF2AF1), INT64CONST(0x548F120162451C62), + INT64CONST(0x939E303D987B47D7), INT64CONST(0xD16ED1D631917144), + INT64CONST(0x5F4C95AFC5EDC62E), INT64CONST(0x1DBC74446C07F0BD), + INT64CONST(0xDAAD56789639AB08), INT64CONST(0x985DB7933FD39D9B), + INT64CONST(0x84193F60D72AF34F), INT64CONST(0xC6E9DE8B7EC0C5DC), + INT64CONST(0x01F8FCB784FE9E69), INT64CONST(0x43081D5C2D14A8FA), + INT64CONST(0xCD2A5925D9681F90), INT64CONST(0x8FDAB8CE70822903), + INT64CONST(0x48CB9AF28ABC72B6), INT64CONST(0x0A3B7B1923564425), + INT64CONST(0x70428B155B4EAF1E), INT64CONST(0x32B26AFEF2A4998D), + INT64CONST(0xF5A348C2089AC238), INT64CONST(0xB753A929A170F4AB), + INT64CONST(0x3971ED50550C43C1), INT64CONST(0x7B810CBBFCE67552), + INT64CONST(0xBC902E8706D82EE7), INT64CONST(0xFE60CF6CAF321874), + INT64CONST(0xE224479F47CB76A0), INT64CONST(0xA0D4A674EE214033), + INT64CONST(0x67C58448141F1B86), INT64CONST(0x253565A3BDF52D15), + INT64CONST(0xAB1721DA49899A7F), INT64CONST(0xE9E7C031E063ACEC), + INT64CONST(0x2EF6E20D1A5DF759), INT64CONST(0x6C0603E6B3B7C1CA), + INT64CONST(0xF6FAE5C07D3274CD), INT64CONST(0xB40A042BD4D8425E), + INT64CONST(0x731B26172EE619EB), INT64CONST(0x31EBC7FC870C2F78), + INT64CONST(0xBFC9838573709812), INT64CONST(0xFD39626EDA9AAE81), + INT64CONST(0x3A28405220A4F534), INT64CONST(0x78D8A1B9894EC3A7), + INT64CONST(0x649C294A61B7AD73), INT64CONST(0x266CC8A1C85D9BE0), + INT64CONST(0xE17DEA9D3263C055), INT64CONST(0xA38D0B769B89F6C6), + INT64CONST(0x2DAF4F0F6FF541AC), INT64CONST(0x6F5FAEE4C61F773F), + INT64CONST(0xA84E8CD83C212C8A), INT64CONST(0xEABE6D3395CB1A19), + INT64CONST(0x90C79D3FEDD3F122), INT64CONST(0xD2377CD44439C7B1), + INT64CONST(0x15265EE8BE079C04), INT64CONST(0x57D6BF0317EDAA97), + INT64CONST(0xD9F4FB7AE3911DFD), INT64CONST(0x9B041A914A7B2B6E), + INT64CONST(0x5C1538ADB04570DB), INT64CONST(0x1EE5D94619AF4648), + INT64CONST(0x02A151B5F156289C), INT64CONST(0x4051B05E58BC1E0F), + INT64CONST(0x87409262A28245BA), INT64CONST(0xC5B073890B687329), + INT64CONST(0x4B9237F0FF14C443), INT64CONST(0x0962D61B56FEF2D0), + INT64CONST(0xCE73F427ACC0A965), INT64CONST(0x8C8315CC052A9FF6), + INT64CONST(0x3A80143F5CF17F13), INT64CONST(0x7870F5D4F51B4980), + INT64CONST(0xBF61D7E80F251235), INT64CONST(0xFD913603A6CF24A6), + INT64CONST(0x73B3727A52B393CC), INT64CONST(0x31439391FB59A55F), + INT64CONST(0xF652B1AD0167FEEA), INT64CONST(0xB4A25046A88DC879), + INT64CONST(0xA8E6D8B54074A6AD), INT64CONST(0xEA16395EE99E903E), + INT64CONST(0x2D071B6213A0CB8B), INT64CONST(0x6FF7FA89BA4AFD18), + INT64CONST(0xE1D5BEF04E364A72), INT64CONST(0xA3255F1BE7DC7CE1), + INT64CONST(0x64347D271DE22754), INT64CONST(0x26C49CCCB40811C7), + INT64CONST(0x5CBD6CC0CC10FAFC), INT64CONST(0x1E4D8D2B65FACC6F), + INT64CONST(0xD95CAF179FC497DA), INT64CONST(0x9BAC4EFC362EA149), + INT64CONST(0x158E0A85C2521623), INT64CONST(0x577EEB6E6BB820B0), + INT64CONST(0x906FC95291867B05), INT64CONST(0xD29F28B9386C4D96), + INT64CONST(0xCEDBA04AD0952342), INT64CONST(0x8C2B41A1797F15D1), + INT64CONST(0x4B3A639D83414E64), INT64CONST(0x09CA82762AAB78F7), + INT64CONST(0x87E8C60FDED7CF9D), INT64CONST(0xC51827E4773DF90E), + INT64CONST(0x020905D88D03A2BB), INT64CONST(0x40F9E43324E99428), + INT64CONST(0x2CFFE7D5975E55E2), INT64CONST(0x6E0F063E3EB46371), + INT64CONST(0xA91E2402C48A38C4), INT64CONST(0xEBEEC5E96D600E57), + INT64CONST(0x65CC8190991CB93D), INT64CONST(0x273C607B30F68FAE), + INT64CONST(0xE02D4247CAC8D41B), INT64CONST(0xA2DDA3AC6322E288), + INT64CONST(0xBE992B5F8BDB8C5C), INT64CONST(0xFC69CAB42231BACF), + INT64CONST(0x3B78E888D80FE17A), INT64CONST(0x7988096371E5D7E9), + INT64CONST(0xF7AA4D1A85996083), INT64CONST(0xB55AACF12C735610), + INT64CONST(0x724B8ECDD64D0DA5), INT64CONST(0x30BB6F267FA73B36), + INT64CONST(0x4AC29F2A07BFD00D), INT64CONST(0x08327EC1AE55E69E), + INT64CONST(0xCF235CFD546BBD2B), INT64CONST(0x8DD3BD16FD818BB8), + INT64CONST(0x03F1F96F09FD3CD2), INT64CONST(0x41011884A0170A41), + INT64CONST(0x86103AB85A2951F4), INT64CONST(0xC4E0DB53F3C36767), + INT64CONST(0xD8A453A01B3A09B3), INT64CONST(0x9A54B24BB2D03F20), + INT64CONST(0x5D45907748EE6495), INT64CONST(0x1FB5719CE1045206), + INT64CONST(0x919735E51578E56C), INT64CONST(0xD367D40EBC92D3FF), + INT64CONST(0x1476F63246AC884A), INT64CONST(0x568617D9EF46BED9), + INT64CONST(0xE085162AB69D5E3C), INT64CONST(0xA275F7C11F7768AF), + INT64CONST(0x6564D5FDE549331A), INT64CONST(0x279434164CA30589), + INT64CONST(0xA9B6706FB8DFB2E3), INT64CONST(0xEB46918411358470), + INT64CONST(0x2C57B3B8EB0BDFC5), INT64CONST(0x6EA7525342E1E956), + INT64CONST(0x72E3DAA0AA188782), INT64CONST(0x30133B4B03F2B111), + INT64CONST(0xF7021977F9CCEAA4), INT64CONST(0xB5F2F89C5026DC37), + INT64CONST(0x3BD0BCE5A45A6B5D), INT64CONST(0x79205D0E0DB05DCE), + INT64CONST(0xBE317F32F78E067B), INT64CONST(0xFCC19ED95E6430E8), + INT64CONST(0x86B86ED5267CDBD3), INT64CONST(0xC4488F3E8F96ED40), + INT64CONST(0x0359AD0275A8B6F5), INT64CONST(0x41A94CE9DC428066), + INT64CONST(0xCF8B0890283E370C), INT64CONST(0x8D7BE97B81D4019F), + INT64CONST(0x4A6ACB477BEA5A2A), INT64CONST(0x089A2AACD2006CB9), + INT64CONST(0x14DEA25F3AF9026D), INT64CONST(0x562E43B4931334FE), + INT64CONST(0x913F6188692D6F4B), INT64CONST(0xD3CF8063C0C759D8), + INT64CONST(0x5DEDC41A34BBEEB2), INT64CONST(0x1F1D25F19D51D821), + INT64CONST(0xD80C07CD676F8394), INT64CONST(0x9AFCE626CE85B507) }; #endif /* INT64_IS_BUSTED */ diff --git a/src/include/config.h.in b/src/include/config.h.in index aba0daafd8..a4c1752ea1 100644 --- a/src/include/config.h.in +++ b/src/include/config.h.in @@ -8,7 +8,7 @@ * or in config.h afterwards. Of course, if you edit config.h, then your * changes will be overwritten the next time you run configure. * - * $Id: config.h.in,v 1.160 2001/03/01 05:05:29 ishii Exp $ + * $Id: config.h.in,v 1.161 2001/03/23 18:42:12 tgl Exp $ */ #ifndef CONFIG_H @@ -591,6 +591,9 @@ extern int fdatasync(int fildes); /* Set to 1 if type "long long int" works and is 64 bits */ #undef HAVE_LONG_LONG_INT_64 +/* Set to 1 if type "long long int" constants should be suffixed by LL */ +#undef HAVE_LL_CONSTANTS + /* Define this as the appropriate snprintf format for 64-bit ints, if any */ #undef INT64_FORMAT diff --git a/src/include/utils/pg_crc.h b/src/include/utils/pg_crc.h index ad67e3b1c9..675859beed 100644 --- a/src/include/utils/pg_crc.h +++ b/src/include/utils/pg_crc.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pg_crc.h,v 1.2 2001/03/22 04:01:14 momjian Exp $ + * $Id: pg_crc.h,v 1.3 2001/03/23 18:42:12 tgl Exp $ */ #ifndef PG_CRC_H #define PG_CRC_H @@ -78,16 +78,23 @@ extern const uint32 crc_table1[]; #else /* int64 works */ +/* decide if we need to decorate constants */ +#ifdef HAVE_LL_CONSTANTS +#define INT64CONST(x) x##LL +#else +#define INT64CONST(x) x +#endif + typedef struct crc64 { uint64 crc0; } crc64; /* Initialize a CRC accumulator */ -#define INIT_CRC64(crc) ((crc).crc0 = (uint64) 0xffffffffffffffff) +#define INIT_CRC64(crc) ((crc).crc0 = INT64CONST(0xffffffffffffffff)) /* Finish a CRC calculation */ -#define FIN_CRC64(crc) ((crc).crc0 ^= (uint64) 0xffffffffffffffff) +#define FIN_CRC64(crc) ((crc).crc0 ^= INT64CONST(0xffffffffffffffff)) /* Accumulate some (more) bytes into a CRC */ #define COMP_CRC64(crc, data, len) \