*** pgsql/configure.in 2003/01/25 05:19:45 1.233 --- pgsql/configure.in 2003/06/23 23:51:59 1.267 *************** *** 1,5 **** dnl Process this file with autoconf to produce a configure script. ! dnl $Header: /projects/cvsroot/pgsql/configure.in,v 1.233 2003/01/25 05:19:45 tgl Exp $ dnl dnl Developers, please strive to achieve this order: dnl --- 1,5 ---- dnl Process this file with autoconf to produce a configure script. ! dnl $Header: /projects/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 *************** case $host_os in *** 58,70 **** aix*) template=aix ;; beos*) template=beos ;; bsdi*) template=bsdi ;; ! cygwin*) template=win ;; darwin*) template=darwin ;; dgux*) template=dgux ;; freebsd*) template=freebsd ;; hpux*) template=hpux ;; irix*) template=irix5 ;; linux*) template=linux ;; netbsd*) template=netbsd ;; nextstep*) template=nextstep ;; openbsd*) template=openbsd ;; --- 58,71 ---- aix*) template=aix ;; beos*) template=beos ;; bsdi*) template=bsdi ;; ! 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 ;; *************** PGAC_ARG_REQ(with, libs, [ --with- *** 148,154 **** 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)])]) AC_MSG_RESULT([$enable_integer_datetimes]) --- 149,155 ---- 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, ! [Define to 1 if you want 64-bit integer timestamp and interval support. (--enable-integer-datetimes)])]) AC_MSG_RESULT([$enable_integer_datetimes]) *************** AC_MSG_RESULT([$enable_integer_datetimes *** 157,163 **** 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)])]) AC_MSG_RESULT([$enable_recode]) --- 158,164 ---- 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, ! [Define to 1 if you want single-byte recode support. (--enable-recode)])]) AC_MSG_RESULT([$enable_recode]) *************** PGAC_ARG_OPTARG(enable, nls, *** 170,176 **** [], [WANTED_LANGUAGES=$enableval], [AC_DEFINE(ENABLE_NLS, 1, ! [Define to 1 if you want National Language Support (--enable-nls)])]) AC_MSG_RESULT([$enable_nls]) AC_SUBST(enable_nls) AC_SUBST(WANTED_LANGUAGES) --- 171,177 ---- [], [WANTED_LANGUAGES=$enableval], [AC_DEFINE(ENABLE_NLS, 1, ! [Define to 1 if you want National Language Support. (--enable-nls)])]) AC_MSG_RESULT([$enable_nls]) AC_SUBST(enable_nls) AC_SUBST(WANTED_LANGUAGES) *************** PGAC_ARG_REQ(with, pgport, [ --with-pgp *** 185,211 **** 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)]) AC_DEFINE_UNQUOTED(DEF_PGPORT_STR, "${default_port}", ! [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 # PGAC_ARG_BOOL(enable, shared, yes, --- 186,200 ---- 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}, ! [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}", ! [Define to the default TCP port number as string constant.]) AC_SUBST(default_port) # # Option to disable shared libraries # PGAC_ARG_BOOL(enable, shared, yes, *************** if test x"$GCC" = x"yes" ; then *** 277,283 **** 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]) # --- 266,274 ---- else cc_string=$CC fi ! 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]) # *************** AC_SUBST(autodepend) *** 293,299 **** # 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])]) # --- 284,290 ---- # 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. (--enable-cassert)])]) # *************** for dir in $LIBRARY_DIRS $SRCH_LIB; do *** 328,333 **** --- 319,333 ---- 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 *************** PGAC_ARG_OPTARG(with, krb4, [[ --with-k *** 410,416 **** [krb4_prefix=$withval], [ AC_MSG_RESULT(yes) ! AC_DEFINE(KRB4, 1, [Define if you are building with Kerberos 4 support.]) if test -d "$krb4_prefix/include"; then INCLUDES="$INCLUDES -I$krb4_prefix/include" --- 410,416 ---- [krb4_prefix=$withval], [ AC_MSG_RESULT(yes) ! 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" *************** PGAC_ARG_OPTARG(with, krb5, [[ --with-k *** 435,441 **** [krb5_prefix=$withval], [ AC_MSG_RESULT([yes]) ! AC_DEFINE(KRB5, 1, [Define if you are building with Kerberos 5 support.]) if test -d "$krb5_prefix/include"; then INCLUDES="$INCLUDES -I$krb5_prefix/include" --- 435,441 ---- [krb5_prefix=$withval], [ AC_MSG_RESULT([yes]) ! 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" *************** PGAC_ARG_REQ(with, krb-srvnam, *** 467,473 **** [], [with_krb_srvnam="postgres"]) AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"], ! [The name of the PostgreSQL service principal in Kerberos]) # --- 467,473 ---- [], [with_krb_srvnam="postgres"]) AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$with_krb_srvnam"], ! [Define to the name of the PostgreSQL service principal in Kerberos. (--with-krb-srvnam=NAME)]) # *************** AC_DEFINE_UNQUOTED([PG_KRB_SRVNAM], ["$w *** 476,487 **** 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_MSG_RESULT([$with_pam]) AC_SUBST(with_pam) # # OpenSSL # PGAC_ARG_OPTARG(with, openssl, --- 476,498 ---- 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 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 # PGAC_ARG_OPTARG(with, openssl, *************** PGAC_ARG_OPTARG(with, openssl, *** 490,496 **** [openssl_prefix=$withval], [ AC_MSG_RESULT([building with OpenSSL support]) ! AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support]) if test -d "${openssl_prefix}/include" ; then INCLUDES="$INCLUDES -I${openssl_prefix}/include" --- 501,507 ---- [openssl_prefix=$withval], [ AC_MSG_RESULT([building with OpenSSL 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" *************** PGAC_ARG_BOOL(with, zlib, yes, *** 516,521 **** --- 527,535 ---- [ --without-zlib do not use Zlib]) + # + # Elf + # # Assume system is ELF if it predefines __ELF__ as 1, # otherwise believe host_os based default. *************** else *** 537,543 **** fi]) AC_SUBST(ELF_SYS) ! CPPFLAGS="$CPPFLAGS $INCLUDES" LDFLAGS="$LDFLAGS $LIBDIRS" --- 551,559 ---- fi]) AC_SUBST(ELF_SYS) ! # ! # Assignments ! # CPPFLAGS="$CPPFLAGS $INCLUDES" LDFLAGS="$LDFLAGS $LIBDIRS" *************** AC_PATH_PROG(TAR, tar) *** 568,573 **** --- 584,598 ---- 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 *************** AC_CHECK_LIB(BSD, main) *** 616,621 **** --- 641,647 ---- 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) *************** fi *** 648,653 **** --- 674,680 ---- 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 *************** fi *** 675,681 **** ## 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 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. --- 702,708 ---- ## 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 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. *************** AC_CHECK_HEADERS(netinet/tcp.h, [], [], *** 689,705 **** if test "$with_readline" = yes; then AC_CHECK_HEADERS(readline/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.])])]) AC_CHECK_HEADERS(readline/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.])])]) fi if test "$with_zlib" = yes; then --- 716,734 ---- if test "$with_readline" = yes; then AC_CHECK_HEADERS(readline/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.])])])]) AC_CHECK_HEADERS(readline/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.])])])]) fi if test "$with_zlib" = yes; then *************** if test "$with_openssl" = yes ; then *** 724,730 **** fi if test "$with_pam" = yes ; then ! AC_CHECK_HEADER(security/pam_appl.h, [], [AC_MSG_ERROR([header file is required for PAM])]) fi --- 753,765 ---- fi if test "$with_pam" = yes ; then ! AC_CHECK_HEADERS(security/pam_appl.h, [], ! [AC_CHECK_HEADERS(pam/pam_appl.h, [], ! [AC_MSG_ERROR([header file or is required for PAM.])])]) ! fi ! ! if test "$with_rendezvous" = yes ; then ! AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [], [AC_MSG_ERROR([header file is required for Rendezvous])]) fi *************** AC_C_INLINE *** 738,749 **** AC_C_STRINGIZE PGAC_C_SIGNED AC_C_VOLATILE ! AC_STRUCT_TIMEZONE PGAC_UNION_SEMUN PGAC_STRUCT_SOCKADDR_UN AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [], [#include #include #include ]) --- 773,789 ---- AC_C_STRINGIZE PGAC_C_SIGNED AC_C_VOLATILE ! 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 + #include #include #include ]) *************** PGAC_FUNC_GETTIMEOFDAY_1ARG *** 782,799 **** # SunOS doesn't handle negative byte comparisons properly with +/- return AC_FUNC_MEMCMP ! AC_CHECK_FUNCS([cbrt fcvt getpeereid memmove pstat setproctitle setsid sigprocmask sysconf waitpid dlopen fdatasync utime utimes]) AC_CHECK_DECLS(fdatasync, [], [], [#include ]) ! # This exports HAVE_IPV6 to both C files and Makefiles ! AC_CHECK_FUNC(getaddrinfo, ! [AC_CHECK_TYPE(struct sockaddr_in6, ! [HAVE_IPV6="yes"; AC_DEFINE(HAVE_IPV6, 1)], ! [], [$ac_includes_default ! #include ])]) ! AC_SUBST(HAVE_IPV6) AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS], [AC_TRY_LINK( --- 822,837 ---- # SunOS doesn't handle negative byte comparisons properly with +/- return AC_FUNC_MEMCMP ! AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getpeereid memmove poll pstat setproctitle setsid sigprocmask symlink sysconf utime utimes waitpid]) AC_CHECK_DECLS(fdatasync, [], [], [#include ]) ! 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 ]) AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS], [AC_TRY_LINK( *************** PS_STRINGS->ps_argvstr = "foo";], *** 805,811 **** [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.]) fi --- 843,849 ---- [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 to 1 if the PS_STRINGS thing exists.]) fi *************** AC_CACHE_CHECK([for isinf], ac_cv_func_i *** 837,850 **** [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()]) 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 getopt_long getrusage inet_aton random srandom strcasecmp strdup strerror strtol strtoul]) # BSD/OS & NetBSD use a custom fseeko/ftello built on fsetpos/fgetpos # We override the previous test that said fseeko/ftello didn't exist --- 875,896 ---- [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().]) 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([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 *************** ac_cv_func_fseeko=yes *** 854,881 **** esac # Solaris has a very slow qsort in certain cases, so we replace it. ! 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 ;; 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]) fi --- 900,920 ---- esac # Solaris has a very slow qsort in certain cases, so we replace it. ! case $host_os in solaris*) ! AC_LIBOBJ(qsort) ;; esac ! # 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 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 *************** dnl Cannot use AC_CHECK_FUNC because fin *** 883,906 **** AC_MSG_CHECKING(for finite) AC_TRY_LINK([#include ], [int dummy=finite(1.0);], ! [AC_DEFINE(HAVE_FINITE, 1, [Set 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. AC_MSG_CHECKING(for sigsetjmp) AC_TRY_LINK([#include ], [sigjmp_buf x; sigsetjmp(x, 1);], ! [AC_DEFINE(HAVE_SIGSETJMP, 1, [Set 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_CACHE_CHECK([for optreset], pgac_cv_var_int_optreset, [AC_TRY_LINK([#include ], --- 922,944 ---- AC_MSG_CHECKING(for finite) AC_TRY_LINK([#include ], [int dummy=finite(1.0);], ! [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 c.h. AC_MSG_CHECKING(for sigsetjmp) AC_TRY_LINK([#include ], [sigjmp_buf x; sigsetjmp(x, 1);], ! [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, [Define to 1 if you have the syslog interface.])])]) AC_CACHE_CHECK([for optreset], pgac_cv_var_int_optreset, [AC_TRY_LINK([#include ], *************** AC_CACHE_CHECK([for optreset], pgac_cv_v *** 908,914 **** [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']) fi AC_CHECK_FUNCS([strtoll strtoq], [break]) --- 946,952 ---- [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'.]) fi AC_CHECK_FUNCS([strtoll strtoq], [break]) *************** AC_CHECK_FUNCS(atexit, [], *** 921,926 **** --- 959,1007 ---- 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. *************** if test x"$HAVE_LONG_LONG_INT_64" = xyes *** 965,1075 **** long long int foo = INT64CONST(0x1234567890123456); ], [], ! [AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define if you 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. ! dnl If neither works, fall back to our own snprintf emulation (which we ! dnl know uses %lld). ! if test x"$HAVE_LONG_LONG_INT_64" = xyes ; then if test $pgac_need_repl_snprintf = no; then ! AC_MSG_CHECKING(whether snprintf handles 'long long int' as %lld) ! AC_TRY_RUN([#include ! 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 ! 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"' ! ]) else ! # here if we previously decided we needed to use our own snprintf ! INT64_FORMAT='"%lld"' fi 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]) if test $pgac_need_repl_snprintf = yes; then AC_LIBOBJ(snprintf) fi ! dnl 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. --- 1046,1089 ---- long long int foo = INT64CONST(0x1234567890123456); ], [], ! [AC_DEFINE(HAVE_LL_CONSTANTS, 1, [Define to 1 if constants of type 'long long int' should have the suffix LL.])], []) 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). ! if test "$HAVE_LONG_LONG_INT_64" = yes ; then if test $pgac_need_repl_snprintf = no; then ! 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 ! 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 to the appropriate snprintf format for 64-bit ints, if any.]) if test $pgac_need_repl_snprintf = yes; then AC_LIBOBJ(snprintf) fi ! # Need a #define for the size of Datum (unsigned long) AC_CHECK_SIZEOF([unsigned long]) # Determine memory alignment requirements for the basic C data types. *************** fi *** 1092,1098 **** 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]) # Some platforms predefine the types int8, int16, etc. Only check --- 1106,1112 ---- 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 C data type.]) # Some platforms predefine the types int8, int16, etc. Only check *************** fi *** 1116,1136 **** # 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]) 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]) SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c" else ! 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]) SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c" --- 1130,1150 ---- # 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.]) 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.]) SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c" else ! 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.]) SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c" *************** fi *** 1142,1156 **** 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]) 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 --- 1156,1163 ---- if test "$with_tcl" = yes; then PGAC_PATH_TCLCONFIGSH([$with_tclconfig]) PGAC_EVAL_TCLCONFIGSH([$TCL_CONFIG_SH], ! [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 fi # Check for Tk configuration script tkConfig.sh