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.
This commit is contained in:
Tom Lane 2001-03-23 18:42:12 +00:00
parent 32924c1c90
commit e458ebfd21
5 changed files with 230 additions and 180 deletions

121
configure vendored
View File

@ -6996,10 +6996,37 @@ fi
if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then
cat > conftest.$ac_ext <<EOF
#line 7002 "configure"
#include "confdefs.h"
#define INT64CONST(x) x##LL
long long int foo = INT64CONST(0x1234567890123456);
int main() {
; return 0; }
EOF
if { (eval echo configure:7012: \"$ac_compile\") 1>&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 <<EOF
#line 7012 "configure"
#line 7039 "configure"
#include "confdefs.h"
#include <stdio.h>
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 <<EOF
#line 7059 "configure"
#line 7086 "configure"
#include "confdefs.h"
#include <stdio.h>
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 <<EOF
#line 7131 "configure"
#line 7158 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -7150,7 +7177,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:7154: \"$ac_link\") 1>&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 <<EOF
#line 7186 "configure"
#line 7213 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -7205,7 +7232,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:7209: \"$ac_link\") 1>&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 <<EOF
#line 7240 "configure"
#line 7267 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char atexit(); below. */
@ -7259,7 +7286,7 @@ atexit();
; return 0; }
EOF
if { (eval echo configure:7263: \"$ac_link\") 1>&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 <<EOF
#line 7291 "configure"
#line 7318 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -7310,7 +7337,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:7314: \"$ac_link\") 1>&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 <<EOF
#line 7355 "configure"
#line 7382 "configure"
#include "confdefs.h"
#include <stdio.h>
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 <<EOF
#line 7400 "configure"
#line 7427 "configure"
#include "confdefs.h"
#include <stdio.h>
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 <<EOF
#line 7440 "configure"
#line 7467 "configure"
#include "confdefs.h"
#include <stdio.h>
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 <<EOF
#line 7480 "configure"
#line 7507 "configure"
#include "confdefs.h"
#include <stdio.h>
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 <<EOF
#line 7521 "configure"
#line 7548 "configure"
#include "confdefs.h"
#include <stdio.h>
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 <<EOF
#line 7562 "configure"
#line 7589 "configure"
#include "confdefs.h"
#include <stdio.h>
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 <<EOF
#line 7617 "configure"
#line 7644 "configure"
#include "confdefs.h"
#include <signal.h>
@ -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

View File

@ -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.

View File

@ -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 */

View File

@ -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

View File

@ -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) \