trawick 01/07/04 17:02:10
Modified: . configure.in
build apr_common.m4
Log:
Stop trying to provide cross-process pthread mutexes on systems where
the form of shared memory used with this code isn't available.
This gets APR_HAS_PROC_PTHREAD_SERIALIZE set to 0 on (at least) HP-UX
and OS/390.
Revision Changes Path
1.328 +7 -2 apr/configure.in
Index: configure.in
===================================================================
RCS file: /home/cvs/apr/configure.in,v
retrieving revision 1.327
retrieving revision 1.328
diff -u -r1.327 -r1.328
--- configure.in 2001/07/02 19:36:44 1.327
+++ configure.in 2001/07/05 00:02:09 1.328
@@ -912,6 +912,7 @@
echo $ac_n "${nl}Checking for Locking...${nl}"
AC_CHECK_FUNCS(semget semctl flock)
+APR_CHECK_FILE(/dev/zero)
# It's stupid, but not all platforms have union semun, even those that need
it.
AC_MSG_CHECKING(for union semun in sys/sem.h)
@@ -973,7 +974,10 @@
APR_IFALLYES(func:semget func:semctl define:SEM_UNDO, hassysvser="1",
hassysvser="0")
APR_IFALLYES(func:flock define:LOCK_EX, hasflockser="1", hasflockser="0")
APR_IFALLYES(header:fcntl.h define:F_SETLK, hasfcntlser="1", hasfcntlser="0")
-APR_IFALLYES(header:pthread.h define:PTHREAD_PROCESS_SHARED
func:pthread_mutexattr_setpshared, hasprocpthreadser="1", hasprocpthreadser="0")
+# note: the current APR use of shared mutex requires /dev/zero
+APR_IFALLYES(header:pthread.h define:PTHREAD_PROCESS_SHARED dnl
+ func:pthread_mutexattr_setpshared file:/dev/zero,
+ hasprocpthreadser="1", hasprocpthreadser="0")
APR_IFALLYES(struct:pthread_rw, hasrwlockser="1", hasrwlockser="0")
# See which lock mechanism we'll select by default on this system.
@@ -983,8 +987,9 @@
APR_DECIDE(USE_SYSVSEM_SERIALIZE, [SysV IPC semget()]))
APR_IFALLYES(func:flock define:LOCK_EX,
APR_DECIDE(USE_FLOCK_SERIALIZE, [4.2BSD-style flock()]))
+# note: the current APR use of shared mutex requires /dev/zero
APR_IFALLYES(header:pthread.h define:PTHREAD_PROCESS_SHARED dnl
- func:pthread_mutexattr_setpshared,
+ func:pthread_mutexattr_setpshared file:/dev/zero,
APR_DECIDE(USE_PROC_PTHREAD_SERIALIZE, [pthread mutex]))
APR_IFALLYES(header:fcntl.h define:F_SETLK,
APR_DECIDE(USE_FCNTL_SERIALIZE, [SVR4-style fcntl()]))
1.20 +19 -0 apr/build/apr_common.m4
Index: apr_common.m4
===================================================================
RCS file: /home/cvs/apr/build/apr_common.m4,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- apr_common.m4 2001/07/01 05:49:44 1.19
+++ apr_common.m4 2001/07/05 00:02:10 1.20
@@ -224,6 +224,25 @@
], ac_cv_define_$1=yes, ac_cv_define_$1=no)
])
+define(APR_CHECK_FILE,[
+ac_safe=`echo "$1" | sed 'y%./+-%__p_%'`
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(ac_cv_file_$ac_safe, [
+ if test -r $1; then
+ eval "ac_cv_file_$ac_safe=yes"
+ else
+ eval "ac_cv_file_$ac_safe=no"
+ fi
+])dnl
+if eval "test \"`echo '$ac_cv_file_'$ac_safe`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+else
+ AC_MSG_RESULT(no)
+ifelse([$3], , , [$3])
+fi
+])
+
define(APR_IFALLYES,[dnl
ac_rc=yes
for ac_spec in $1; do