diff options
| author | Bruce Momjian <bruce@momjian.us> | 2003-06-14 17:49:54 +0000 |
|---|---|---|
| committer | Bruce Momjian <bruce@momjian.us> | 2003-06-14 17:49:54 +0000 |
| commit | a16a0314114f7e6e4414d11f6ff2744496952bda (patch) | |
| tree | 453187eb6cf695da32e516fbd9c3d1ad6f2fa9ed /configure.in | |
| parent | 62b532b73668267eb950f1ba8fed4a8ec45f60ae (diff) | |
| download | postgresql-a16a0314114f7e6e4414d11f6ff2744496952bda.tar.gz | |
Make libpq thread-safe with configure --with-threads option.
Lee Kindness
Diffstat (limited to 'configure.in')
| -rw-r--r-- | configure.in | 26 |
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 |
