]> granicus.if.org Git - postgresql/blobdiff - configure.in
Error message editing: finish up undone task of reporting the problem
[postgresql] / configure.in
index 64cb6844d56def3a66945d48d51d3b44c83aa500..ae2d5c4fe63c92d67fc688fd92b5599a8760e196 100644 (file)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Header: /cvsroot/pgsql/configure.in,v 1.225 2003/01/06 03:18:25 momjian Exp $
+dnl $Header: /cvsroot/pgsql/configure.in,v 1.267 2003/06/23 23:51:59 momjian Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -58,13 +58,14 @@ case $host_os in
      aix*) template=aix ;;
     beos*) template=beos ;;
     bsdi*) template=bsdi ;;
-  cygwin*) template=win ;;
+  cygwin*) template=cygwin ;;
   darwin*) template=darwin ;;
     dgux*) template=dgux ;;
  freebsd*) template=freebsd ;;
     hpux*) template=hpux ;;
     irix*) template=irix5 ;;
    linux*) template=linux ;;
+   mingw*) template=win32 ;;
   netbsd*) template=netbsd ;;
 nextstep*) template=nextstep ;;
  openbsd*) template=openbsd ;;
@@ -148,7 +149,7 @@ PGAC_ARG_REQ(with, libs,      [  --with-libs=DIRS        alternative spelling of
 AC_MSG_CHECKING([whether to build with 64-bit integer date/time support])
 PGAC_ARG_BOOL(enable, integer-datetimes, no, [  --enable-integer-datetimes  enable 64-bit integer date/time support],
               [AC_DEFINE([USE_INTEGER_DATETIMES], 1,
-                         [Set to 1 if you want integer date/time support (--enable-integer-datetimes)])])
+                         [Define to 1 if you want 64-bit integer timestamp and interval support. (--enable-integer-datetimes)])])
 AC_MSG_RESULT([$enable_integer_datetimes])
 
 
@@ -157,7 +158,7 @@ AC_MSG_RESULT([$enable_integer_datetimes])
 AC_MSG_CHECKING([whether to build with recode support])
 PGAC_ARG_BOOL(enable, recode, no, [  --enable-recode         enable single-byte recode support],
               [AC_DEFINE([CYR_RECODE], 1,
-                         [Set to 1 if you want single-byte recode support (--enable-recode)])])
+                         [Define to 1 if you want single-byte recode support. (--enable-recode)])])
 AC_MSG_RESULT([$enable_recode])
 
 
@@ -170,7 +171,7 @@ PGAC_ARG_OPTARG(enable, nls,
                 [],
                 [WANTED_LANGUAGES=$enableval],
                 [AC_DEFINE(ENABLE_NLS, 1,
-                           [Define to 1 if you want National Language Support (--enable-nls)])])
+                           [Define to 1 if you want National Language Support. (--enable-nls)])])
 AC_MSG_RESULT([$enable_nls])
 AC_SUBST(enable_nls)
 AC_SUBST(WANTED_LANGUAGES)
@@ -185,26 +186,14 @@ PGAC_ARG_REQ(with, pgport, [  --with-pgport=PORTNUM   change default port number
 AC_MSG_RESULT([$default_port])
 # Need both of these because some places want an integer and some a string
 AC_DEFINE_UNQUOTED(DEF_PGPORT, ${default_port},
-[The default TCP port number on which the server listens and to which
-clients will try to connect to.  This can be overridden at run-time,
-but it's convenient if your clients have the right default compiled in.
-(--with-pgport=PORTNUM)])
+[Define to the default TCP port number on which the server listens and
+to which clients will try to connect to.  This can be overridden at
+run-time, but it's convenient if your clients have the right default
+compiled in.  (--with-pgport=PORTNUM)])
 AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}",
-                   [Default TCP port number as string constant])
+                   [Define to the default TCP port number as string constant.])
 AC_SUBST(default_port)
 
-#
-# Maximum number of allowed connections (--with-maxbackends), default 32
-#
-AC_MSG_CHECKING([for default soft limit on number of connections])
-PGAC_ARG_REQ(with, maxbackends, [  --with-maxbackends=N    set default maximum number of connections [32]],
-             [],
-             [with_maxbackends=32])
-AC_MSG_RESULT([$with_maxbackends])
-AC_DEFINE_UNQUOTED([DEF_MAXBACKENDS], [$with_maxbackends],
-                   [The default soft limit on the number of concurrent connections, i.e., the default for the postmaster -N switch (--with-maxbackends)])
-
-
 #
 # Option to disable shared libraries
 #
@@ -277,7 +266,9 @@ if test x"$GCC" = x"yes" ; then
 else
   cc_string=$CC
 fi
-AC_DEFINE_UNQUOTED(PG_VERSION_STR, ["PostgreSQL $PACKAGE_VERSION on $host, compiled by $cc_string"], [A canonical string containing the version number, platform, and C compiler])
+AC_DEFINE_UNQUOTED(PG_VERSION_STR,
+                   ["PostgreSQL $PACKAGE_VERSION on $host, compiled by $cc_string"],
+                   [A string containing the version number, platform, and C compiler])
 
 
 #
@@ -293,7 +284,7 @@ AC_SUBST(autodepend)
 #
 PGAC_ARG_BOOL(enable, cassert, no, [  --enable-cassert        enable assertion checks (for debugging)],
               [AC_DEFINE([USE_ASSERT_CHECKING], 1,
-                         [Define to 1 to build with assertion checks])])
+                         [Define to 1 to build with assertion checks. (--enable-cassert)])])
 
 
 #
@@ -328,6 +319,15 @@ for dir in $LIBRARY_DIRS $SRCH_LIB; do
 done
 IFS=$ac_save_IFS
 
+#
+# Enable libpq to be thread-safe
+#
+AC_MSG_CHECKING([allow threaded libpq])
+PGAC_ARG_BOOL(with, threads, no, [  --with-threads          allow libpq and ecpg to be thread-safe],
+              [AC_DEFINE([USE_THREADS], 1, [Define to 1 to build libpq and ecpg to be thread-safe. (--with-threads)])])
+
+AC_MSG_RESULT([$with_threads])
+AC_SUBST(with_threads)
 
 #
 # Tcl/Tk
@@ -410,7 +410,7 @@ PGAC_ARG_OPTARG(with, krb4, [[  --with-krb4[=DIR]       build with Kerberos 4 su
                 [krb4_prefix=$withval],
 [
   AC_MSG_RESULT(yes)
-  AC_DEFINE(KRB4, 1, [Define if you are building with Kerberos 4 support.])
+  AC_DEFINE(KRB4, 1, [Define to build with Kerberos 4 support. (--with-krb4)])
 
   if test -d "$krb4_prefix/include"; then
     INCLUDES="$INCLUDES -I$krb4_prefix/include"
@@ -435,7 +435,7 @@ PGAC_ARG_OPTARG(with, krb5, [[  --with-krb5[=DIR]       build with Kerberos 5 su
               [krb5_prefix=$withval],
 [
   AC_MSG_RESULT([yes])
-  AC_DEFINE(KRB5, 1, [Define if you are building with Kerberos 5 support.])
+  AC_DEFINE(KRB5, 1, [Define to build with Kerberos 5 support. (--with-krb5)])
 
   if test -d "$krb5_prefix/include"; then
     INCLUDES="$INCLUDES -I$krb5_prefix/include"
@@ -467,7 +467,7 @@ PGAC_ARG_REQ(with, krb-srvnam,
              [],
              [with_krb_srvnam="postgres"])
 AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"],
-                   [The name of the PostgreSQL service principal in Kerberos])
+                   [Define to the name of the PostgreSQL service principal in Kerberos. (--with-krb-srvnam=NAME)])
 
 
 #
@@ -476,11 +476,22 @@ AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"],
 AC_MSG_CHECKING([whether to build with PAM support])
 PGAC_ARG_BOOL(with, pam, no,
               [  --with-pam              build with PAM support],
-              [AC_DEFINE([USE_PAM], 1, [Define to build with PAM support])])
+              [AC_DEFINE([USE_PAM], 1, [Define to 1 to build with PAM support. (--with-pam)])])
 AC_MSG_RESULT([$with_pam])
 AC_SUBST(with_pam)
 
 
+#
+# Rendezvous
+#
+AC_MSG_CHECKING([whether to build with Rendezvous support])
+PGAC_ARG_BOOL(with, rendezvous, no,
+              [  --with-rendezvous       build with Rendezvous support],
+              [AC_DEFINE([USE_RENDEZVOUS], 1, [Define to 1 to build with Rendezvous support. (--with-rendezvous)])])
+AC_MSG_RESULT([$with_rendezvous])
+AC_SUBST(with_rendezvous)
+
+
 #
 # OpenSSL
 #
@@ -490,7 +501,7 @@ PGAC_ARG_OPTARG(with, openssl,
                 [openssl_prefix=$withval],
 [
   AC_MSG_RESULT([building with OpenSSL support])
-  AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support])
+  AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support. (--with-openssl)])
 
   if test -d "${openssl_prefix}/include" ; then
     INCLUDES="$INCLUDES -I${openssl_prefix}/include"
@@ -516,6 +527,9 @@ PGAC_ARG_BOOL(with, zlib, yes,
               [  --without-zlib          do not use Zlib])
 
 
+#
+# Elf
+#
 
 # Assume system is ELF if it predefines __ELF__ as 1,
 # otherwise believe host_os based default.
@@ -537,7 +551,9 @@ else
 fi])
 AC_SUBST(ELF_SYS)
 
-
+#
+# Assignments
+#
 
 CPPFLAGS="$CPPFLAGS $INCLUDES"
 LDFLAGS="$LDFLAGS $LIBDIRS"
@@ -568,6 +584,15 @@ AC_PATH_PROG(TAR, tar)
 PGAC_CHECK_STRIP
 
 AC_CHECK_PROGS(YACC, ['bison -y'])
+
+if test "$YACC"; then
+  if $YACC --version | sed q | $AWK '{ if ($4 < 1.875) exit 0; else exit 1;}'; then
+    AC_MSG_WARN([
+*** The installed version of Bison is too old.  PostgreSQL needs
+*** Bison version 1.875 or later.])
+  fi
+fi
+
 if test -z "$YACC"; then
   AC_MSG_WARN([
 *** Without Bison you will not be able to build PostgreSQL from CVS or
@@ -616,6 +641,7 @@ AC_CHECK_LIB(BSD,      main)
 AC_CHECK_LIB(gen,      main)
 AC_CHECK_LIB(PW,       main)
 AC_CHECK_LIB(resolv,   main)
+AC_CHECK_LIB(wsock32,   main)
 AC_SEARCH_LIBS(getopt_long, [getopt gnugetopt])
 # QNX:
 AC_CHECK_LIB(unix, main)
@@ -648,6 +674,7 @@ fi
 if test "$with_krb4" = yes ; then
   AC_CHECK_LIB(des, des_encrypt, [], [AC_MSG_ERROR([library 'des' is required for Kerberos 4])])
   AC_CHECK_LIB(krb, krb_sendauth, [], [AC_MSG_ERROR([library 'krb' is required for Kerberos 4])])
+  AC_REPLACE_FUNCS([gethostname])
 fi
 
 if test "$with_krb5" = yes ; then
@@ -675,7 +702,7 @@ fi
 ##
 
 dnl sys/socket.h is required by AC_FUNC_ACCEPT_ARGTYPES
-AC_CHECK_HEADERS([crypt.h dld.h endian.h fp_class.h getopt.h ieeefp.h pwd.h sys/ipc.h sys/pstat.h sys/select.h sys/sem.h sys/socket.h sys/shm.h sys/un.h termios.h kernel/OS.h kernel/image.h SupportDefs.h])
+AC_CHECK_HEADERS([crypt.h dld.h endian.h fp_class.h getopt.h ieeefp.h poll.h pwd.h sys/ipc.h sys/poll.h sys/pstat.h sys/select.h sys/sem.h sys/socket.h sys/shm.h sys/un.h termios.h utime.h kernel/OS.h kernel/image.h SupportDefs.h])
 
 # At least on IRIX, cpp test for netinet/tcp.h will fail unless
 # netinet/in.h is included first.
@@ -687,29 +714,26 @@ AC_CHECK_HEADERS(netinet/tcp.h, [], [],
 #endif
 ])
 
-# This exports HAVE_IPV6 to both C files and Makefiles
-AC_CHECK_FUNC(getaddrinfo,
-             [HAVE_IPV6="yes"; AC_DEFINE(HAVE_IPV6, 1, [])], [])
-AC_SUBST(HAVE_IPV6)
-
 if test "$with_readline" = yes; then
   AC_CHECK_HEADERS(readline/readline.h, [],
-                   [AC_CHECK_HEADERS(readline.h, [],
+                   [AC_CHECK_HEADERS(editline/readline.h, [],
+                         [AC_CHECK_HEADERS(readline.h, [],
                                      [AC_MSG_ERROR([readline header not found
 If you have readline already installed, see config.log for details on the
 failure.  It is possible the compiler isn't looking in the proper directory.
-Use --without-readline to disable readline support.])])])
+Use --without-readline to disable readline support.])])])])
   AC_CHECK_HEADERS(readline/history.h, [],
-                   [AC_CHECK_HEADERS(history.h, [],
+                   [AC_CHECK_HEADERS(editline/history.h, [],
+                         [AC_CHECK_HEADERS(history.h, [],
                                      [AC_MSG_ERROR([history header not found
 If you have readline already installed, see config.log for details on the
 failure.  It is possible the compiler isn't looking in the proper directory.
-Use --without-readline to disable readline support.])])])
+Use --without-readline to disable readline support.])])])])
 fi
 
 if test "$with_zlib" = yes; then
   AC_CHECK_HEADER(zlib.h, [], [AC_MSG_ERROR([zlib header not found
-If you have readline already installed, see config.log for details on the
+If you have zlib already installed, see config.log for details on the
 failure.  It is possible the compiler isn't looking in the proper directory.
 Use --without-zlib to disable zlib support.])])
 fi
@@ -729,7 +753,13 @@ if test "$with_openssl" = yes ; then
 fi
 
 if test "$with_pam" = yes ; then
-  AC_CHECK_HEADER(security/pam_appl.h, [], [AC_MSG_ERROR([header file <security/pam_appl.h> is required for PAM])])
+  AC_CHECK_HEADERS(security/pam_appl.h, [],
+                   [AC_CHECK_HEADERS(pam/pam_appl.h, [],
+                                     [AC_MSG_ERROR([header file <security/pam_appl.h> or <pam/pam_appl.h> is required for PAM.])])])
+fi
+
+if test "$with_rendezvous" = yes ; then
+  AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [], [AC_MSG_ERROR([header file <DNSServiceDiscovery/DNSServiceDiscovery.h> is required for Rendezvous])])
 fi
 
 
@@ -743,12 +773,17 @@ AC_C_INLINE
 AC_C_STRINGIZE
 PGAC_C_SIGNED
 AC_C_VOLATILE
-AC_STRUCT_TIMEZONE
+PGAC_C_FUNCNAME_SUPPORT
+PGAC_STRUCT_TIMEZONE
 PGAC_UNION_SEMUN
 PGAC_STRUCT_SOCKADDR_UN
+PGAC_STRUCT_SOCKADDR_STORAGE
+PGAC_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
+PGAC_STRUCT_ADDRINFO
 
 AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [],
 [#include <sys/param.h>
+#include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/ucred.h>])
 
@@ -764,7 +799,7 @@ fi
 if test "$with_krb5" = yes; then
 # Check for differences between MIT and Heimdal (KTH) releases
   AC_CHECK_MEMBERS(krb5_ticket.enc_part2, [],
-                   [AC_CHECK_MEMBERS([krb5_ticket.client], [],
+                   [AC_CHECK_MEMBERS(krb5_ticket.client, [],
                                      [AC_MSG_ERROR([could not determine how to get client name from Kerberos 5 ticket])],
                                      [#include <krb5.h>])],
                    [#include <krb5.h>])
@@ -787,10 +822,17 @@ PGAC_FUNC_GETTIMEOFDAY_1ARG
 # SunOS doesn't handle negative byte comparisons properly with +/- return
 AC_FUNC_MEMCMP
 
-AC_CHECK_FUNCS([cbrt fcvt getopt_long getpeereid memmove pstat setproctitle setsid sigprocmask sysconf waitpid dlopen fdatasync])
+AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getpeereid memmove poll pstat setproctitle setsid sigprocmask symlink sysconf utime utimes waitpid])
 
 AC_CHECK_DECLS(fdatasync, [], [], [#include <unistd.h>])
 
+AC_CHECK_TYPE([struct sockaddr_in6],
+              [AC_CHECK_FUNC(inet_ntop,
+                             [AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if you have support for IPv6.])])],
+              [],
+[$ac_includes_default
+#include <netinet/in.h>])
+
 AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS],
 [AC_TRY_LINK(
 [#include <machine/vmparam.h>
@@ -801,7 +843,7 @@ PS_STRINGS->ps_argvstr = "foo";],
 [pgac_cv_var_PS_STRINGS=yes],
 [pgac_cv_var_PS_STRINGS=no])])
 if test "$pgac_cv_var_PS_STRINGS" = yes ; then
-  AC_DEFINE([HAVE_PS_STRINGS], [], [Define if the PS_STRINGS thing exists.])
+  AC_DEFINE([HAVE_PS_STRINGS], [], [Define to 1 if the PS_STRINGS thing exists.])
 fi
 
 
@@ -833,14 +875,22 @@ AC_CACHE_CHECK([for isinf], ac_cv_func_isinf,
 [ac_cv_func_isinf=no])])
 
 if test $ac_cv_func_isinf = yes ; then
-  AC_DEFINE(HAVE_ISINF, 1, [Define to 1 if you have isinf()])
+  AC_DEFINE(HAVE_ISINF, 1, [Define to 1 if you have isinf().])
 else
   AC_LIBOBJ(isinf)
   # Look for a way to implement a substitute for isinf()
   AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break])
 fi
 
-AC_REPLACE_FUNCS([fseeko gethostname getrusage inet_aton random srandom strcasecmp strdup strerror strtol strtoul])
+AC_REPLACE_FUNCS([crypt fseeko getopt getopt_long getrusage inet_aton random rint srandom strcasecmp strdup strerror strtol strtoul])
+
+# system's version of getaddrinfo(), if any, may be used only if we found
+# a definition for struct addrinfo; see notes in src/include/getaddrinfo.h
+if test x"$ac_cv_type_struct_addrinfo" = xyes ; then
+  AC_REPLACE_FUNCS([getaddrinfo])
+else
+  AC_LIBOBJ(getaddrinfo)
+fi
 
 # BSD/OS & NetBSD use a custom fseeko/ftello built on fsetpos/fgetpos
 # We override the previous test that said fseeko/ftello didn't exist
@@ -850,28 +900,21 @@ ac_cv_func_fseeko=yes
 esac
 
 # Solaris has a very slow qsort in certain cases, so we replace it.
-case $host_os in
-  solaris*) AC_LIBOBJ(qsort) ;;
+case $host_os in solaris*) 
+AC_LIBOBJ(qsort) ;;
 esac
 
-# On HPUX 9, rint() is not in regular libm.a but in /lib/pa1.1/libm.a;
-# this hackery with HPUXMATHLIB allows us to cope.
-HPUXMATHLIB=""
-case $host_cpu in
-  hppa1.1)
-       if test -r /lib/pa1.1/libm.a ; then
-           HPUXMATHLIB="-L /lib/pa1.1 -lm"
-       fi ;;
+# Win32 can't to rename or unlink on an open file
+case $host_os in mingw*)
+AC_LIBOBJ(dirmod)
+AC_LIBOBJ(copydir)
+AC_LIBOBJ(gettimeofday) ;;
 esac
-AC_SUBST(HPUXMATHLIB)
-
-AC_CHECK_FUNCS(rint, [],
-               [AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT), , $HPUXMATHLIB)])
-
 
 if test "$with_readline" = yes; then
   PGAC_VAR_RL_COMPLETION_APPEND_CHARACTER
   AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function])
+  AC_CHECK_FUNCS([replace_history_entry])
 fi
 
 
@@ -879,24 +922,23 @@ dnl Cannot use AC_CHECK_FUNC because finite may be a macro
 AC_MSG_CHECKING(for finite)
 AC_TRY_LINK([#include <math.h>],
             [int dummy=finite(1.0);],
-            [AC_DEFINE(HAVE_FINITE, 1, [Set to 1 if you have finite()])
+            [AC_DEFINE(HAVE_FINITE, 1, [Define to 1 if you have finite().])
 AC_MSG_RESULT(yes)],
             [AC_MSG_RESULT(no)])
 
 dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro
 dnl (especially on GNU libc)
-dnl See also comments in pg_config.h.
+dnl See also comments in c.h.
 AC_MSG_CHECKING(for sigsetjmp)
 AC_TRY_LINK([#include <setjmp.h>],
             [sigjmp_buf x; sigsetjmp(x, 1);],
-            [AC_DEFINE(HAVE_SIGSETJMP, 1, [Set to 1 if you have sigsetjmp()])
+            [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define to 1 if you have sigsetjmp().])
 AC_MSG_RESULT(yes)],
             [AC_MSG_RESULT(no)])
 
 AC_CHECK_FUNC(syslog,
-            [AC_CHECK_HEADER(syslog.h,
-            [AC_DEFINE(HAVE_SYSLOG, 1, [])],
-            [])])
+              [AC_CHECK_HEADER(syslog.h,
+                               [AC_DEFINE(HAVE_SYSLOG, 1, [Define to 1 if you have the syslog interface.])])])
 
 AC_CACHE_CHECK([for optreset], pgac_cv_var_int_optreset,
 [AC_TRY_LINK([#include <unistd.h>],
@@ -904,7 +946,7 @@ AC_CACHE_CHECK([for optreset], pgac_cv_var_int_optreset,
   [pgac_cv_var_int_optreset=yes],
   [pgac_cv_var_int_optreset=no])])
 if test x"$pgac_cv_var_int_optreset" = x"yes"; then
-  AC_DEFINE(HAVE_INT_OPTRESET, 1, [Define to 1 if you have the global variable 'int optreset'])
+  AC_DEFINE(HAVE_INT_OPTRESET, 1, [Define to 1 if you have the global variable 'int optreset'.])
 fi
 
 AC_CHECK_FUNCS([strtoll strtoq], [break])
@@ -917,6 +959,49 @@ AC_CHECK_FUNCS(atexit, [],
 
 AC_FUNC_FSEEKO
 
+#
+# Pthreads
+#
+# For each platform, we need to know about any special compile and link
+# libraries, and whether the normal C function names are thread-safe.
+#
+NEED_REENTRANT_FUNC_NAMES=no
+if test "$with_threads" = yes; then
+AC_CHECK_HEADER(pthread.h, [], [AC_MSG_ERROR([pthread.h not found, required for --with-threads])])
+
+if test "$SUPPORTS_THREADS" != yes; then
+AC_MSG_ERROR([
+Cannot enable threads on your platform.
+Please report your platform threading info to the PostgreSQL mailing lists
+so it can be added to the next release.  Report any compile flags, link flags,
+functions, or libraries required for threading support.
+])
+fi
+fi
+AC_SUBST(THREAD_CFLAGS)
+AC_SUBST(THREAD_LIBS)
+
+
+#
+# Check for re-entrant versions of certain functions
+#
+# Include special flags if threads are enabled _and_ if required for 
+# threading on this platform.  Some platforms have *_r functions but
+# their natively named funcs are threadsafe, and should be used instead.
+#
+# One trick here is that if the don't call AC_CHECK_FUNCS, the
+# functions are marked "not found", which is perfect.
+#
+if test "$NEED_REENTRANT_FUNC_NAMES" = yes ; then
+_CFLAGS="$CFLAGS"
+_LIB="$LIBS"
+CFLAGS="$CFLAGS $TREAD_CFLAGS"
+LIBS="$LIBS $THREAD_LIBS"
+AC_CHECK_FUNCS([strerror_r getpwuid_r gethostbyname_r])
+CFLAGS="$_CFLAGS"
+LIB="$_LIBS"
+fi
+
 
 # This test makes sure that run tests work at all.  Sometimes a shared
 # library is found by the linker, but the runtime linker can't find it.
@@ -961,111 +1046,44 @@ if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then
 long long int foo = INT64CONST(0x1234567890123456);
 ],
        [],
-       [AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define if you have LL constants])],
+       [AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define to 1 if constants of type 'long long int' should have the suffix LL.])],
        [])
 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.
-dnl If neither works, fall back to our own snprintf emulation (which we
-dnl know uses %lld).
+# 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).
 
-if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then
+if test "$HAVE_LONG_LONG_INT_64" = yes ; then
   if test $pgac_need_repl_snprintf = no; then
-    AC_MSG_CHECKING(whether snprintf handles 'long long int' as %lld)
-    AC_TRY_RUN([#include <stdio.h>
-typedef long long int int64;
-#define INT64_FORMAT "%lld"
-
-int64 a = 20000001;
-int64 b = 40000005;
-
-int does_int64_snprintf_work()
-{
-  int64 c;
-  char buf[100];
-
-  if (sizeof(int64) != 8)
-    return 0;                  /* doesn't look like the right size */
-
-  c = a * b;
-  snprintf(buf, 100, INT64_FORMAT, c);
-  if (strcmp(buf, "800000140000005") != 0)
-    return 0;                  /* either multiply or snprintf is busted */
-  return 1;
-}
-main() {
-  exit(! does_int64_snprintf_work());
-}],
-       [ AC_MSG_RESULT(yes)
-         INT64_FORMAT='"%lld"'
-       ],
-  [ AC_MSG_RESULT(no)
-    AC_MSG_CHECKING(whether snprintf handles 'long long int' as %qd)
-    AC_TRY_RUN([#include <stdio.h>
-typedef long long int int64;
-#define INT64_FORMAT "%qd"
-int64 a = 20000001;
-int64 b = 40000005;
-int does_int64_snprintf_work()
-{ 
-  int64 c;
-  char buf[100];
-
-  if (sizeof(int64) != 8)
-    return 0;     /* doesn't look like the right size */
-
-  c = a * b;
-  snprintf(buf, 100, INT64_FORMAT, c);
-  if (strcmp(buf, "800000140000005") != 0)
-    return 0;     /* either multiply or snprintf is busted */
-  return 1;
-}
-main() {
-  exit(! does_int64_snprintf_work());
-}],
-  [ AC_MSG_RESULT(yes)
-    INT64_FORMAT='"%qd"'
-  ],
-  [ AC_MSG_RESULT(no)
-       # Force usage of our own snprintf, since system snprintf is broken
-        pgac_need_repl_snprintf=yes
-       INT64_FORMAT='"%lld"'
-  ],
-  [ AC_MSG_RESULT([cannot test (not on host machine)])
-       # Force usage of our own snprintf, since we cannot test foreign snprintf
-        pgac_need_repl_snprintf=yes
-       INT64_FORMAT='"%lld"'
-  ]) ],
-  [ AC_MSG_RESULT([cannot test (not on host machine)])
-       # Force usage of our own snprintf, since we cannot test foreign snprintf
-        pgac_need_repl_snprintf=yes
-       INT64_FORMAT='"%lld"'
-  ])
+    PGAC_FUNC_SNPRINTF_LONG_LONG_INT_FORMAT
+    if test "$LONG_LONG_INT_FORMAT" = ""; then
+      # Force usage of our own snprintf, since system snprintf is broken
+      pgac_need_repl_snprintf=yes
+      LONG_LONG_INT_FORMAT='%lld'
+    fi
   else
-    # here if we previously decided we needed to use our own snprintf
-    INT64_FORMAT='"%lld"'
+    # Here if we previously decided we needed to use our own snprintf
+    LONG_LONG_INT_FORMAT='%lld'
   fi
+  INT64_FORMAT="\"$LONG_LONG_INT_FORMAT\""
 else
   # Here if we are not using 'long long int' at all
   INT64_FORMAT='"%ld"'
 fi
 
 AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT,
-                   [Define this as the appropriate snprintf format for 64-bit ints, if any])
+                   [Define to the appropriate snprintf format for 64-bit ints, if any.])
 
 if test $pgac_need_repl_snprintf = yes; then
   AC_LIBOBJ(snprintf)
 fi
 
-dnl Need a #define for the size of Datum (unsigned long)
-
+# Need a #define for the size of Datum (unsigned long)
 AC_CHECK_SIZEOF([unsigned long])
-AC_DEFINE_UNQUOTED(SIZEOF_DATUM, $ac_cv_sizeof_unsigned_long, [sizeof(Datum) -- don't change])
 
 # Determine memory alignment requirements for the basic C data types.
 
@@ -1088,7 +1106,7 @@ fi
 if test x"$HAVE_LONG_LONG_INT_64" = xyes && test $MAX_ALIGNOF -lt $pgac_cv_alignof_long_long_int ; then
   MAX_ALIGNOF="$pgac_cv_alignof_long_long_int"
 fi
-AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any type])
+AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any C data type.])
 
 
 # Some platforms predefine the types int8, int16, etc.  Only check
@@ -1112,21 +1130,21 @@ fi
 
 # Select semaphore implementation type.
 if test x"$USE_NAMED_POSIX_SEMAPHORES" = x"1" ; then
-  AC_DEFINE(USE_NAMED_POSIX_SEMAPHORES, 1, [Define to select named POSIX semaphores])
+  AC_DEFINE(USE_NAMED_POSIX_SEMAPHORES, 1, [Define to select named POSIX semaphores.])
   SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
 else
   if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then
-    AC_DEFINE(USE_UNNAMED_POSIX_SEMAPHORES, 1, [Define to select unnamed POSIX semaphores])
+    AC_DEFINE(USE_UNNAMED_POSIX_SEMAPHORES, 1, [Define to select unnamed POSIX semaphores.])
     SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
   else
-    AC_DEFINE(USE_SYSV_SEMAPHORES, 1, [Define to select SysV-style semaphores])
+    AC_DEFINE(USE_SYSV_SEMAPHORES, 1, [Define to select SysV-style semaphores.])
     SEMA_IMPLEMENTATION="src/backend/port/sysv_sema.c"
   fi
 fi
 
 
 # Select shared-memory implementation type.
-AC_DEFINE(USE_SYSV_SHARED_MEMORY, 1, [Define to select SysV-style shared memory])
+AC_DEFINE(USE_SYSV_SHARED_MEMORY, 1, [Define to select SysV-style shared memory.])
 SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c"
 
 
@@ -1138,15 +1156,8 @@ fi
 if test "$with_tcl" = yes; then
     PGAC_PATH_TCLCONFIGSH([$with_tclconfig])
     PGAC_EVAL_TCLCONFIGSH([$TCL_CONFIG_SH],
-                          [TCL_LIB_FILE,TCL_LIBS,TCL_LIB_SPEC,TCL_SHARED_BUILD])
+                          [TCL_INCLUDE_SPEC,TCL_LIB_FILE,TCL_LIBS,TCL_LIB_SPEC,TCL_SHARED_BUILD])
     AC_SUBST(TCL_SHLIB_LD_LIBS)dnl don't want to double-evaluate that one
-    # TCL_INCLUDE_SPEC is only provided in Tcl 8.4 and later
-    if test "${TCL_INCLUDE_SPEC+set}" = set; then
-       eval TCL_INCLUDE_SPEC=\"$TCL_INCLUDE_SPEC\"
-    else
-       TCL_INCLUDE_SPEC=''
-    fi
-    AC_SUBST(TCL_INCLUDE_SPEC)dnl
 fi
 
 # Check for Tk configuration script tkConfig.sh