trawick 00/11/30 14:18:01
Modified: . CHANGES configure.in hints.m4
Log:
Lock config changes:
1) Detect SysV sem capability by the presence of sempaphore functions, not
by the presence of union semun. (I don't think this changed anything
in practice since systems tend to have flock and fcntl.)
2) New config variable apr_lock_method can override autodetection of the
apr_lock implementation method.
3) Select SysV semaphores for OS/390 because they perform better than other
supported locking mechanisms.
Revision Changes Path
1.6 +6 -0 apr/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apr/CHANGES,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- CHANGES 2000/11/29 19:35:51 1.5
+++ CHANGES 2000/11/30 22:17:57 1.6
@@ -1,4 +1,10 @@
Changes with APR a9
+ *) Lock config changes: Detect SysV sem capability by the presence of
+ sempaphore functions, not by the presence of union semun. New
+ config variable apr_lock_method can override autodetection of the
+ apr_lock implementation method. For now, hints.m4 uses it to select
+ SysV semaphores for OS/390. [Jeff Trawick]
+
*) Get APR_OFF_T_FMT defined properly on Solaris Sparc.
[Jeff Trawick]
1.177 +7 -3 apr/configure.in
Index: configure.in
===================================================================
RCS file: /home/cvs/apr/configure.in,v
retrieving revision 1.176
retrieving revision 1.177
diff -u -r1.176 -r1.177
--- configure.in 2000/11/30 08:04:03 1.176
+++ configure.in 2000/11/30 22:17:58 1.177
@@ -596,6 +596,8 @@
dnl #----------------------------- Checking for Locking Characteristics
echo $ac_n "${nl}Checking for Locking...${nl}"
+AC_CHECK_FUNCS(semget semctl)
+
# 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)
AC_TRY_COMPILE([
@@ -625,8 +627,8 @@
AC_CHECK_DEFINE(PTHREAD_PROCESS_SHARED, pthread.h)
fi
-AC_BEGIN_DECISION([ap_lock implementation method])
-AC_IFALLYES(custom:union_semun,
+AC_BEGIN_DECISION([apr_lock implementation method])
+AC_IFALLYES(func:semget func:semctl,
AC_DECIDE(USE_SYSVSEM_SERIALIZE, [SysV IPC semget()]))
AC_IFALLYES(header:sys/file.h define:LOCK_EX,
AC_DECIDE(USE_FLOCK_SERIALIZE, [4.2BSD-style flock()]))
@@ -635,7 +637,9 @@
AC_IFALLYES(header:pthread.h define:PTHREAD_PROCESS_SHARED dnl
custom:with_pthread_cross,
AC_DECIDE(USE_PROC_PTHREAD_SERIALIZE, [pthread mutex]))
-dnl AC_DECISION_FORCE(USE_FCNTL_SERIALIZE)
+if test "x$apr_lock_method" != "x"; then
+ AC_DECISION_FORCE($apr_lock_method)
+fi
AC_END_DECISION
AC_DEFINE_UNQUOTED($ac_decision)
1.27 +1 -0 apr/hints.m4
Index: hints.m4
===================================================================
RCS file: /home/cvs/apr/hints.m4,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- hints.m4 2000/11/30 07:57:26 1.26
+++ hints.m4 2000/11/30 22:17:58 1.27
@@ -347,6 +347,7 @@
APR_SETIFNULL(CC, [c89])
;;
*-ibm-os390)
+ APR_SETIFNULL(apr_lock_method, [USE_SYSVSEM_SERIALIZE])
APR_SETIFNULL(CC, [cc])
APR_ADDTO(CFLAGS, [-U_NO_PROTO])
APR_ADDTO(CFLAGS, [-DPTHREAD_ATTR_SETDETACHSTATE_ARG2_ADDR])