Add --enable-thread-safety-force to force a thread compile even if the

OS thread tests fail.
This commit is contained in:
Bruce Momjian 2004-07-10 01:24:29 +00:00
parent 4525418451
commit 732f2fda82
2 changed files with 91 additions and 17 deletions

76
configure vendored
View File

@ -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

View 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"