129 lines
3.1 KiB
Plaintext
129 lines
3.1 KiB
Plaintext
dnl common platform checks needed by MPMs, methods for MPMs to state
|
|
dnl their support for the platform, functions to query MPM properties
|
|
|
|
APR_CHECK_APR_DEFINE(APR_HAS_THREADS)
|
|
|
|
have_threaded_sig_graceful=yes
|
|
case $host in
|
|
*-linux-*)
|
|
case `uname -r` in
|
|
2.0* )
|
|
dnl Threaded MPM's are not supported on Linux 2.0
|
|
dnl as on 2.0 the linuxthreads library uses SIGUSR1
|
|
dnl and SIGUSR2 internally
|
|
have_threaded_sig_graceful=no
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
dnl See if APR supports APR_POLLSET_THREADSAFE.
|
|
dnl XXX This hack tests for the underlying functions used by APR when it supports
|
|
dnl XXX APR_POLLSET_THREADSAFE, and duplicates APR's Darwin version check.
|
|
dnl A run-time check for
|
|
dnl apr_pollset_create(,,APR_POLLSET_THREADSAFE) == APR_SUCCESS
|
|
dnl would be great but an in-tree apr (srclib/apr) hasn't been built yet.
|
|
|
|
AC_CACHE_CHECK([whether APR supports thread-safe pollsets], [ac_cv_have_threadsafe_pollset], [
|
|
case $host in
|
|
*-apple-darwin[[1-9]].*)
|
|
APR_SETIFNULL(ac_cv_func_kqueue, [no])
|
|
;;
|
|
esac
|
|
AC_CHECK_FUNCS(kqueue port_create epoll_create)
|
|
if test "$ac_cv_func_kqueue$ac_cv_func_port_create$ac_cv_func_epoll_create" != "nonono"; then
|
|
ac_cv_have_threadsafe_pollset=yes
|
|
else
|
|
ac_cv_have_threadsafe_pollset=no
|
|
fi
|
|
])
|
|
|
|
dnl See if APR has skiplist
|
|
dnl The base httpd prereq is APR 1.4.x, so we don't have to consider
|
|
dnl earlier versions.
|
|
case $APR_VERSION in
|
|
1.4*)
|
|
apr_has_skiplist=no
|
|
;;
|
|
*)
|
|
apr_has_skiplist=yes
|
|
esac
|
|
|
|
dnl See if this is a forking platform w.r.t. MPMs
|
|
case $host in
|
|
*mingw32* | *os2-emx*)
|
|
forking_mpms_supported=no
|
|
;;
|
|
*)
|
|
forking_mpms_supported=yes
|
|
;;
|
|
esac
|
|
|
|
dnl APACHE_MPM_SUPPORTED(name, supports-shared, is_threaded)
|
|
AC_DEFUN([APACHE_MPM_SUPPORTED],[
|
|
if test "$2" = "yes"; then
|
|
eval "ap_supported_mpm_$1=shared"
|
|
ap_supported_shared_mpms="$ap_supported_shared_mpms $1 "
|
|
else
|
|
eval "ap_supported_mpm_$1=static"
|
|
fi
|
|
if test "$3" = "yes"; then
|
|
eval "ap_threaded_mpm_$1=yes"
|
|
fi
|
|
])dnl
|
|
|
|
dnl APACHE_MPM_ENABLED(name)
|
|
AC_DEFUN([APACHE_MPM_ENABLED],[
|
|
if ap_mpm_is_enabled $1; then
|
|
:
|
|
else
|
|
eval "ap_enabled_mpm_$1=yes"
|
|
ap_enabled_mpms="$ap_enabled_mpms $1 "
|
|
fi
|
|
])dnl
|
|
|
|
ap_mpm_is_supported ()
|
|
{
|
|
eval "tmp=\$ap_supported_mpm_$1"
|
|
if test -z "$tmp"; then
|
|
return 1
|
|
else
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
ap_mpm_supports_shared ()
|
|
{
|
|
eval "tmp=\$ap_supported_mpm_$1"
|
|
if test "$tmp" = "shared"; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
ap_mpm_is_threaded ()
|
|
{
|
|
if test "$mpm_build" = "shared" -a ac_cv_define_APR_HAS_THREADS = "yes"; then
|
|
return 0
|
|
fi
|
|
|
|
for mpm in $ap_enabled_mpms; do
|
|
eval "tmp=\$ap_threaded_mpm_$mpm"
|
|
if test "$tmp" = "yes"; then
|
|
return 0
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
ap_mpm_is_enabled ()
|
|
{
|
|
eval "tmp=\$ap_enabled_mpm_$1"
|
|
if test "$tmp" = "yes"; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|