mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Add --enable-thread-safety-force to force a thread compile even if the
OS thread tests fail.
This commit is contained in:
76
configure
vendored
76
configure
vendored
@ -846,6 +846,7 @@ Optional Features:
|
|||||||
--enable-depend turn on automatic dependency tracking
|
--enable-depend turn on automatic dependency tracking
|
||||||
--enable-cassert enable assertion checks (for debugging)
|
--enable-cassert enable assertion checks (for debugging)
|
||||||
--enable-thread-safety make client libraries thread-safe
|
--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
|
--disable-largefile omit support for large files
|
||||||
|
|
||||||
Optional Packages:
|
Optional Packages:
|
||||||
@ -2937,11 +2938,7 @@ if test "${enable_thread_safety+set}" = set; then
|
|||||||
|
|
||||||
case $enableval in
|
case $enableval in
|
||||||
yes)
|
yes)
|
||||||
|
:
|
||||||
cat >>confdefs.h <<\_ACEOF
|
|
||||||
#define ENABLE_THREAD_SAFETY 1
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
no)
|
no)
|
||||||
:
|
:
|
||||||
@ -2958,6 +2955,40 @@ else
|
|||||||
|
|
||||||
fi;
|
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 "$as_me:$LINENO: result: $enable_thread_safety" >&5
|
||||||
echo "${ECHO_T}$enable_thread_safety" >&6
|
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
|
# We have to run the thread test near the end so we have all our symbols
|
||||||
# defined. Cross compiling throws a warning.
|
# 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 "$as_me:$LINENO: checking thread safety of required library functions" >&5
|
||||||
echo $ECHO_N "checking thread safety of required library functions... $ECHO_C" >&6
|
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 "${ECHO_T}maybe" >&6
|
||||||
{ echo "$as_me:$LINENO: WARNING:
|
{ echo "$as_me:$LINENO: WARNING:
|
||||||
*** Skipping thread test program because of cross-compile build.
|
*** 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
|
" >&5
|
||||||
echo "$as_me: WARNING:
|
echo "$as_me: WARNING:
|
||||||
*** Skipping thread test program because of cross-compile build.
|
*** 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;}
|
" >&2;}
|
||||||
else
|
else
|
||||||
cat >conftest.$ac_ext <<_ACEOF
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
@ -17988,10 +18032,22 @@ echo "$as_me:$LINENO: result: no" >&5
|
|||||||
echo "${ECHO_T}no" >&6
|
echo "${ECHO_T}no" >&6
|
||||||
{ { echo "$as_me:$LINENO: error:
|
{ { echo "$as_me:$LINENO: error:
|
||||||
*** Thread test program failed. Your platform is not thread-safe.
|
*** 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:
|
echo "$as_me: error:
|
||||||
*** Thread test program failed. Your platform is not thread-safe.
|
*** 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; }; }
|
{ (exit 1); exit 1; }; }
|
||||||
fi
|
fi
|
||||||
rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
|
rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
|
||||||
|
32
configure.in
32
configure.in
@ -1,5 +1,5 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
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
|
||||||
dnl Developers, please strive to achieve this order:
|
dnl Developers, please strive to achieve this order:
|
||||||
dnl
|
dnl
|
||||||
@ -358,9 +358,14 @@ IFS=$ac_save_IFS
|
|||||||
# Enable thread-safe client libraries
|
# Enable thread-safe client libraries
|
||||||
#
|
#
|
||||||
AC_MSG_CHECKING([allow 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],
|
PGAC_ARG_BOOL(enable, thread-safety, no, [ --enable-thread-safety make client libraries thread-safe])
|
||||||
[AC_DEFINE([ENABLE_THREAD_SAFETY], 1,
|
PGAC_ARG_BOOL(enable, thread-safety-force, no, [ --enable-thread-safety-force force thread-safety in spite of thread test failure])
|
||||||
[Define to 1 to build client libraries as thread-safe code. (--enable-thread-safety)])])
|
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_MSG_RESULT([$enable_thread_safety])
|
||||||
AC_SUBST(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
|
# We have to run the thread test near the end so we have all our symbols
|
||||||
# defined. Cross compiling throws a warning.
|
# 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])
|
AC_MSG_CHECKING([thread safety of required library functions])
|
||||||
|
|
||||||
_CFLAGS="$CFLAGS"
|
_CFLAGS="$CFLAGS"
|
||||||
@ -1196,11 +1208,17 @@ AC_TRY_RUN([#include "$srcdir/src/tools/thread/thread_test.c"],
|
|||||||
[AC_MSG_RESULT(no)
|
[AC_MSG_RESULT(no)
|
||||||
AC_MSG_ERROR([
|
AC_MSG_ERROR([
|
||||||
*** Thread test program failed. Your platform is not thread-safe.
|
*** 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_RESULT(maybe)
|
||||||
AC_MSG_WARN([
|
AC_MSG_WARN([
|
||||||
*** Skipping thread test program because of cross-compile build.
|
*** 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"
|
CFLAGS="$_CFLAGS"
|
||||||
LIBS="$_LIBS"
|
LIBS="$_LIBS"
|
||||||
|
Reference in New Issue
Block a user