Add --enable-thread-safety-force to force a thread compile even if the
authorBruce Momjian <bruce@momjian.us>
Sat, 10 Jul 2004 01:24:29 +0000 (01:24 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 10 Jul 2004 01:24:29 +0000 (01:24 +0000)
OS thread tests fail.

configure
configure.in

index bbc28a5e4175fc4fea0fd2407fb664182423c2eb..c7623adb894df8a4ca12ada745b942018ba1d4e2 100755 (executable)
--- a/configure
+++ b/configure
@@ -846,6 +846,7 @@ Optional Features:
   --enable-depend         turn on automatic dependency tracking
   --enable-cassert        enable assertion checks (for debugging)
   --enable-thread-safety  make client libraries thread-safe
+  --enable-thread-safety-force  force thread-safety in spite of thread test failure
   --disable-largefile     omit support for large files
 
 Optional Packages:
@@ -2937,11 +2938,7 @@ if test "${enable_thread_safety+set}" = set; then
 
   case $enableval in
     yes)
-
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_THREAD_SAFETY 1
-_ACEOF
-
+      :
       ;;
     no)
       :
@@ -2958,6 +2955,40 @@ else
 
 fi;
 
+
+
+# Check whether --enable-thread-safety-force or --disable-thread-safety-force was given.
+if test "${enable_thread_safety_force+set}" = set; then
+  enableval="$enable_thread_safety_force"
+
+  case $enableval in
+    yes)
+      :
+      ;;
+    no)
+      :
+      ;;
+    *)
+      { { echo "$as_me:$LINENO: error: no argument expected for --enable-thread-safety-force option" >&5
+echo "$as_me: error: no argument expected for --enable-thread-safety-force option" >&2;}
+   { (exit 1); exit 1; }; }
+      ;;
+  esac
+
+else
+  enable_thread_safety_force=no
+
+fi;
+
+if test "$enable_thread_safety" = yes -o
+   test "$enable_thread_safety_force" = yes; then
+  enable_thread_safety="yes"   # for 'force'
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_THREAD_SAFETY 1
+_ACEOF
+
+fi
 echo "$as_me:$LINENO: result: $enable_thread_safety" >&5
 echo "${ECHO_T}$enable_thread_safety" >&6
 
@@ -17941,7 +17972,20 @@ done
 # We have to run the thread test near the end so we have all our symbols
 # defined.  Cross compiling throws a warning.
 #
-if test "$enable_thread_safety" = yes; then
+if test "$enable_thread_safety_force" = yes; then
+  { echo "$as_me:$LINENO: WARNING:
+*** Skipping thread test program.  --enable-thread-safety-force was used.
+*** Run the program in src/tools/thread on the your machine and add
+proper locking function calls to your applications to guarantee thread
+safety.
+" >&5
+echo "$as_me: WARNING:
+*** Skipping thread test program.  --enable-thread-safety-force was used.
+*** Run the program in src/tools/thread on the your machine and add
+proper locking function calls to your applications to guarantee thread
+safety.
+" >&2;}
+elif test "$enable_thread_safety" = yes; then
 echo "$as_me:$LINENO: checking thread safety of required library functions" >&5
 echo $ECHO_N "checking thread safety of required library functions... $ECHO_C" >&6
 
@@ -17954,11 +17998,11 @@ if test "$cross_compiling" = yes; then
 echo "${ECHO_T}maybe" >&6
   { echo "$as_me:$LINENO: WARNING:
 *** Skipping thread test program because of cross-compile build.
-*** Run the program in src/tools/thread on the target matchine.
+*** Run the program in src/tools/thread on the target machine.
 " >&5
 echo "$as_me: WARNING:
 *** Skipping thread test program because of cross-compile build.
-*** Run the program in src/tools/thread on the target matchine.
+*** Run the program in src/tools/thread on the target machine.
 " >&2;}
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -17988,10 +18032,22 @@ echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
   { { echo "$as_me:$LINENO: error:
 *** Thread test program failed.  Your platform is not thread-safe.
-*** Check the file 'config.log'for the exact reason." >&5
+*** Check the file 'config.log'for the exact reason.
+***
+*** You can use the configure option --enable-thread-safety-force
+*** to force threads to be enabled.  However, you must then run
+*** the program in src/tools/thread and add locking function calls
+*** to your applications to guarantee thread safety.
+" >&5
 echo "$as_me: error:
 *** Thread test program failed.  Your platform is not thread-safe.
-*** Check the file 'config.log'for the exact reason." >&2;}
+*** Check the file 'config.log'for the exact reason.
+***
+*** You can use the configure option --enable-thread-safety-force
+*** to force threads to be enabled.  However, you must then run
+*** the program in src/tools/thread and add locking function calls
+*** to your applications to guarantee thread safety.
+" >&2;}
    { (exit 1); exit 1; }; }
 fi
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
index 32379becc2e0a29353b3369fc51b504242d08864..bfb6dd0635ab1a720a7bb914de6df2941b3af0ed 100644 (file)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $PostgreSQL: pgsql/configure.in,v 1.365 2004/06/24 18:55:18 tgl Exp $
+dnl $PostgreSQL: pgsql/configure.in,v 1.366 2004/07/10 01:24:29 momjian Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -358,9 +358,14 @@ IFS=$ac_save_IFS
 # Enable thread-safe client libraries
 #
 AC_MSG_CHECKING([allow thread-safe client libraries])
-PGAC_ARG_BOOL(enable, thread-safety, no, [  --enable-thread-safety  make client libraries thread-safe],
-              [AC_DEFINE([ENABLE_THREAD_SAFETY], 1,
-                         [Define to 1 to build client libraries as thread-safe code. (--enable-thread-safety)])])
+PGAC_ARG_BOOL(enable, thread-safety, no, [  --enable-thread-safety  make client libraries thread-safe])
+PGAC_ARG_BOOL(enable, thread-safety-force, no, [  --enable-thread-safety-force  force thread-safety in spite of thread test failure])
+if test "$enable_thread_safety" = yes -o
+   test "$enable_thread_safety_force" = yes; then
+  enable_thread_safety="yes"   # for 'force'
+  AC_DEFINE([ENABLE_THREAD_SAFETY], 1,
+          [Define to 1 to build client libraries as thread-safe code. (--enable-thread-safety)])
+fi
 AC_MSG_RESULT([$enable_thread_safety])
 AC_SUBST(enable_thread_safety)
 
@@ -1184,7 +1189,14 @@ AC_CHECK_PROGS(SGMLSPL, sgmlspl)
 # We have to run the thread test near the end so we have all our symbols
 # defined.  Cross compiling throws a warning.
 #
-if test "$enable_thread_safety" = yes; then
+if test "$enable_thread_safety_force" = yes; then
+  AC_MSG_WARN([
+*** Skipping thread test program.  --enable-thread-safety-force was used.
+*** Run the program in src/tools/thread on the your machine and add
+proper locking function calls to your applications to guarantee thread
+safety.
+])
+elif test "$enable_thread_safety" = yes; then
 AC_MSG_CHECKING([thread safety of required library functions])
 
 _CFLAGS="$CFLAGS"
@@ -1196,11 +1208,17 @@ AC_TRY_RUN([#include "$srcdir/src/tools/thread/thread_test.c"],
   [AC_MSG_RESULT(no)
   AC_MSG_ERROR([
 *** Thread test program failed.  Your platform is not thread-safe.  
-*** Check the file 'config.log'for the exact reason.])],
+*** Check the file 'config.log'for the exact reason.
+***
+*** You can use the configure option --enable-thread-safety-force
+*** to force threads to be enabled.  However, you must then run
+*** the program in src/tools/thread and add locking function calls
+*** to your applications to guarantee thread safety.
+])],
   [AC_MSG_RESULT(maybe)
   AC_MSG_WARN([
 *** Skipping thread test program because of cross-compile build.
-*** Run the program in src/tools/thread on the target matchine.
+*** Run the program in src/tools/thread on the target machine.
 ])])
 CFLAGS="$_CFLAGS"
 LIBS="$_LIBS"