rbb         99/12/22 12:29:20

  Modified:    src/lib/apr acconfig.h configure.in
               src/lib/apr/locks/unix intraproc.c
               src/lib/apr/misc/unix start.c
               src/modules/mpm/prefork config.m4
  Log:
  Clean up APR's configure script a bit.  This commit also allows Apache to
  specify that APR should be built without threads for the prefork MPM.  This
  is broken if we then try to configure Apache again using a threaded MPM, but
  this is easily fixable, and I will be doing that soon.  Lastly, I removed all
  thread calls from APR when it is told to build without threads.
  
  Revision  Changes    Path
  1.18      +1 -0      apache-2.0/src/lib/apr/acconfig.h
  
  Index: acconfig.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/acconfig.h,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- acconfig.h        1999/12/21 21:16:14     1.17
  +++ acconfig.h        1999/12/22 20:29:16     1.18
  @@ -45,6 +45,7 @@
   #undef USEBCOPY
   
   #undef HAVE_GMTOFF
  +#undef USE_THREADS
   
   #undef SIZEOF_SSIZE_T
   
  
  
  
  1.38      +50 -67    apache-2.0/src/lib/apr/configure.in
  
  Index: configure.in
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/configure.in,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- configure.in      1999/12/21 21:16:17     1.37
  +++ configure.in      1999/12/22 20:29:16     1.38
  @@ -1,3 +1,4 @@
  +
   AC_CONFIG_AUX_DIR(./helpers)
   OS=`./config.guess`
   OS=`./config.sub $OS` 
  @@ -28,6 +29,42 @@
   AC_CHECK_PROG(RM, rm, rm)
   AC_CHECK_PROG(AR, ar, ar)
   
  +# This macro needs to be here in case we are on an AIX box.
  +AC_AIX
  +
  +AC_CACHE_CHECK([for threads], ac_cv_enable_threads, 
  +  [ AC_ARG_ENABLE(threads,
  +    [  --enable-threads  Enable threading support in APR.], 
  +    [ ] , 
  +    [ AC_CHECK_HEADERS(pthread.h,  
  +                   [ ac_cv_enable_threads="pthread" ] , 
  +                   [ ac_cv_enable_threads="no" ] ) ] ) ] ) 
  +
  +if test "$ac_cv_enable_threads" = "no"; then 
  +    threads="0"
  +    pthreadh="0"
  +else
  +    if test "$ac_cv_enable_threads" = "pthread"; then
  +      AC_CHECK_HEADERS(pthread.h, [ 
  +          threads="1"
  +          pthreadh="1"
  +          AC_DEFINE(USE_THREADS) ], [
  +          threads="0"
  +          pthreadh="0" ] )
  +    fi
  +fi
  +
  +pthreadser="0"
  +if test "$threads" = "1"; then
  +    AC_CHECK_DEFINE(PTHREAD_PROCESS_SHARED, pthread.h)
  +    AC_CHECK_LIB(pthread, pthread_mutex_init, [
  +        AC_DEFINE(USE_PTHREAD_SERIALIZE)
  +        pthreadser="1" ])
  +    AC_CHECK_LIB(c_r, pthread_mutex_init, [ 
  +        AC_DEFINE(USE_PTHREAD_SERIALIZE)
  +        pthreadser="1"])
  +fi
  +
   AC_ARG_WITH(debug,[  --with-debug              Turn on debugging and compile 
time warnings],
        [if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -g -Wall"; else 
CFLAGS="$CFLAGS -g"; fi])
   
  @@ -42,10 +79,6 @@
           ;;
   esac
   
  -
  -# This macro needs to be here in case we are on an AIX box.
  -AC_AIX
  -
   dnl Checks for standard typedefs
   AC_TYPE_OFF_T
   AC_TYPE_PID_T
  @@ -80,9 +113,6 @@
   if test "$ac_cv_sizeof_longlong" = "8"; then
       long_value="__int64"
   fi
  -AC_SUBST(short_value)
  -AC_SUBST(int_value)
  -AC_SUBST(long_value)
   
   if test "$ac_cv_type_off_t" = "yes"; then
       off_t_value="off_t"
  @@ -100,10 +130,6 @@
       ssize_t_value="ap_int32_t"
   fi
   
  -AC_SUBST(off_t_value)
  -AC_SUBST(size_t_value)
  -AC_SUBST(ssize_t_value)
  -
   AC_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], ssize_t, 8)
   
   # Use /bin/sh if it exists, otherwise go looking for sh in the path
  @@ -114,7 +140,6 @@
   
   AC_CHECK_DEFINE(LOCK_EX, sys/file.h)
   AC_CHECK_DEFINE(F_SETLK, fcntl.h)
  -AC_CHECK_DEFINE(PTHREAD_PROCESS_SHARED, pthread.h)
   
   dnl Checks for libraries.
   AC_BEGIN_DECISION([lock implementation method])
  @@ -153,24 +178,9 @@
       procpthreadser="0"
   fi
   
  -AC_SUBST(flockser)
  -AC_SUBST(sysvser)
  -AC_SUBST(fcntlser)
  -AC_SUBST(procpthreadser)
  -
  -pthreadser="0"
  -AC_CHECK_LIB(pthread, pthread_mutex_init, [
  -    AC_DEFINE(USE_PTHREAD_SERIALIZE)
  -    pthreadser="1" ])
  -AC_CHECK_LIB(c_r, pthread_mutex_init, [ 
  -    AC_DEFINE(USE_PTHREAD_SERIALIZE)
  -    pthreadser="1"])
  -AC_SUBST(pthreadser)
  -
   ac_cv_define_READDIR_IS_THREAD_SAFE=no
   AC_CHECK_LIB(c_r, readdir, AC_DEFINE(READDIR_IS_THREAD_SAFE))
   
  -
   case "$OS" in
      *-os2*)
          CFLAGS="$CFLAGS -DOS2 -Zmt"
  @@ -308,46 +318,6 @@
   
   AC_CHECK_FUNCS(gmtime_r localtime_r)
   
  -AC_MSG_CHECKING(whether to enable thread support)
  -AC_ARG_ENABLE(threads,
  -[  --enable-threads  Enable threading support in APR.],
  -[
  -  if test "$enableval" = "no"; then 
  -    threads="0"
  -    pthreadh="0"
  -    AC_SUBST(threads)
  -    AC_SUBST(pthreadh)
  -    AC_MSG_RESULT(no)
  -  else
  -    if test "$enableval" = "pthread"; then
  -      AC_CHECK_HEADERS(pthread.h, [ 
  -          threads="1"
  -          pthreadh="1"
  -          AC_SUBST(pthreadh)
  -          AC_SUBST(threads) ], [
  -          threads="0"
  -          pthreadh="0"
  -          AC_SUBST(pthreadh)
  -          AC_SUBST(threads) ] )
  -      AC_MSG_RESULT(yes)
  -    else
  -      AC_MSG_RESULT(no)
  -    fi
  -  fi
  -],
  -[
  -  AC_CHECK_HEADERS(pthread.h, [
  -          threads="1"
  -          pthreadh="1"
  -          AC_SUBST(pthreadh)
  -          AC_SUBST(threads) ], [
  -          threads="0"
  -          pthreadh="0"
  -          AC_SUBST(pthreadh)
  -          AC_SUBST(threads) ] )
  -]) 
  -
  -
   dnl Start building stuff from our information
   AC_SUBST(LDLIBS)
   AC_SUBST(OPTIM)
  @@ -366,6 +336,19 @@
   AC_SUBST(stdioh)
   AC_SUBST(sys_typesh)
   AC_SUBST(sys_uioh)
  +AC_SUBST(threads)
  +AC_SUBST(pthreadh)
  +AC_SUBST(short_value)
  +AC_SUBST(int_value)
  +AC_SUBST(long_value)
  +AC_SUBST(off_t_value)
  +AC_SUBST(size_t_value)
  +AC_SUBST(ssize_t_value)
  +AC_SUBST(flockser)
  +AC_SUBST(sysvser)
  +AC_SUBST(fcntlser)
  +AC_SUBST(procpthreadser)
  +AC_SUBST(pthreadser)
   
   AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff,
   [AC_TRY_COMPILE([#include <sys/types.h>
  
  
  
  1.9       +1 -1      apache-2.0/src/lib/apr/locks/unix/intraproc.c
  
  Index: intraproc.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/locks/unix/intraproc.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- intraproc.c       1999/12/03 15:18:27     1.8
  +++ intraproc.c       1999/12/22 20:29:18     1.9
  @@ -56,7 +56,7 @@
   
   #if APR_HAS_THREADS
   
  -#if defined (USE_PTHREAD_SERIALIZE)  
  +#if defined(USE_PTHREAD_SERIALIZE)  
   
   ap_status_t lock_intra_cleanup(void *data)
   {
  
  
  
  1.16      +3 -4      apache-2.0/src/lib/apr/misc/unix/start.c
  
  Index: start.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/misc/unix/start.c,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- start.c   1999/12/03 15:18:30     1.15
  +++ start.c   1999/12/22 20:29:19     1.16
  @@ -186,14 +186,13 @@
    */
   ap_status_t ap_initialize(void)
   {
  -#ifdef HAVE_PTHREAD_SIGMASK 
       sigset_t sigset;
   
       sigfillset(&sigset);
  -    /*@@@ FIXME: This should *NOT* be called for the prefork MPM,
  -     * even if HAVE_PTHREAD_SIGMASK is defined!!!!       MnKr
  -     */
  +#if defined(HAVE_PTHREAD_SIGMASK) && defined(USE_THREADS)
       pthread_sigmask(SIG_BLOCK, &sigset, NULL);
  +#else
  +    sigprocmask(SIG_BLOCK, &sigset, NULL);
   #endif
       return APR_SUCCESS;
   }
  
  
  
  1.3       +4 -0      apache-2.0/src/modules/mpm/prefork/config.m4
  
  Index: config.m4
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/mpm/prefork/config.m4,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- config.m4 1999/11/30 03:52:45     1.2
  +++ config.m4 1999/12/22 20:29:20     1.3
  @@ -1,4 +1,8 @@
   if test "$MPM_NAME" = "prefork" ; then
  +dnl Turn off all threading functions in APR
  +    ac_cv_enable_threads="no"
  +    AC_CACHE_SAVE
  +
       APACHE_OUTPUT(modules/mpm/$MPM_NAME/Makefile)
   
       APACHE_MPM_CHECK_SHMEM
  
  
  

Reply via email to