]> granicus.if.org Git - postgresql/blobdiff - configure.in
Error message editing: finish up undone task of reporting the problem
[postgresql] / configure.in
index b8c533d05dfd0a272ee7508cabb50a45f934cec5..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.262 2003/06/14 14:35:42 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
@@ -323,8 +323,8 @@ 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 to be thread-safe],
-              [AC_DEFINE([USE_THREADS], 1, [Define to 1 to build libpq with threads. (--with-threads)])])
+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)
@@ -551,36 +551,6 @@ else
 fi])
 AC_SUBST(ELF_SYS)
 
-#
-# Pthreads
-#
-if test "$with_threads" = yes; then
-AC_CHECK_HEADER(pthread.h, [], [AC_MSG_ERROR([pthread.h not found, required for --with-threads])])
-case $host_os in
-               netbsd*|bsdi*) 
-                       # these require no special flags or libraries
-                       ;;
-               freebsd2*|freebsd3*|freebsd4*) THREAD_CFLAGS="-pthread" ;;
-               freebsd*)
-                       THREAD_LIBS="-lc_r"
-                       ;;
-               linux*) THREAD_CFLAGS="-D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS"
-                       THREAD_LIBS="-lpthread"
-                       ;;
-               *)
-                       # other operating systems might fail because they have pthread.h but need
-                       # special libs we don't know about yet.
-                       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 or link flags,
-or libraries required for threading support.
-])
-esac
-fi
-AC_SUBST(THREAD_CFLAGS)
-AC_SUBST(THREAD_LIBS)
-
 #
 # Assignments
 #
@@ -808,6 +778,7 @@ 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], [], [],
@@ -988,11 +959,40 @@ 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 required
+# 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"
@@ -1000,7 +1000,7 @@ 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