summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2003-06-14 17:49:54 +0000
committerBruce Momjian <bruce@momjian.us>2003-06-14 17:49:54 +0000
commita16a0314114f7e6e4414d11f6ff2744496952bda (patch)
tree453187eb6cf695da32e516fbd9c3d1ad6f2fa9ed /configure.in
parent62b532b73668267eb950f1ba8fed4a8ec45f60ae (diff)
downloadpostgresql-a16a0314114f7e6e4414d11f6ff2744496952bda.tar.gz
Make libpq thread-safe with configure --with-threads option.
Lee Kindness
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in26
1 files changed, 21 insertions, 5 deletions
diff --git a/configure.in b/configure.in
index b8c533d05d..a5b7108db9 100644
--- a/configure.in
+++ b/configure.in
@@ -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.263 2003/06/14 17:49:53 momjian Exp $
dnl
dnl Developers, please strive to achieve this order:
dnl
@@ -554,18 +554,28 @@ AC_SUBST(ELF_SYS)
#
# 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])])
case $host_os in
- netbsd*|bsdi*)
+ netbsd*|bsdi*)
# these require no special flags or libraries
+ NEED_REENTRANT_FUNC_NAMES=no
+ ;;
+ freebsd2*|freebsd3*|freebsd4*)
+ THREAD_CFLAGS="-pthread"
+ NEED_REENTRANT_FUNC_NAMES=yes
;;
- freebsd2*|freebsd3*|freebsd4*) THREAD_CFLAGS="-pthread" ;;
freebsd*)
THREAD_LIBS="-lc_r"
+ NEED_REENTRANT_FUNC_NAMES=yes
;;
linux*) THREAD_CFLAGS="-D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS"
THREAD_LIBS="-lpthread"
+ NEED_REENTRANT_FUNC_NAMES=yes
;;
*)
# other operating systems might fail because they have pthread.h but need
@@ -991,8 +1001,14 @@ AC_FUNC_FSEEKO
#
# 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 +1016,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