⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apr_threads.m4

📁 Apache V2.0.15 Alpha For Linuxhttpd-2_0_15-alpha.tar.Z
💻 M4
字号:
dnl -----------------------------------------------------------------dnl apr_threads.m4: APR's autoconf macros for testing thread supportdnldnldnl APR_CHECK_PTHREADS_H([ ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])dnldnl gcc issues warnings when parsing AIX 4.3.3's pthread.hdnl which causes autoconf to incorrectly conclude thatdnl pthreads is not available.dnl Turn off warnings if we're using gcc.dnlAC_DEFUN(APR_CHECK_PTHREADS_H, [  if test "$GCC" = "yes"; then    SAVE_FL="$CPPFLAGS"    CPPFLAGS="$CPPFLAGS -w"    AC_CHECK_HEADERS(pthread.h, [ $1 ] , [ $2 ] )    CPPFLAGS="$SAVE_FL"  else    AC_CHECK_HEADERS(pthread.h, [ $1 ] , [ $2 ] )  fi])dnldnldnl APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGSdnlAC_DEFUN(APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS, [AC_CACHE_CHECK(whether pthread_getspecific takes two arguments, ac_cv_pthread_getspecific_two_args,[AC_TRY_COMPILE([#include <pthread.h>],[pthread_key_t key;void *tmp;pthread_getspecific(key,&tmp);],[    ac_cv_pthread_getspecific_two_args=yes],[    ac_cv_pthread_getspecific_two_args=no])])if test "$ac_cv_pthread_getspecific_two_args" = "yes"; then  AC_DEFINE(PTHREAD_GETSPECIFIC_TAKES_TWO_ARGS, 1, [Define if pthread_getspecific() has two args])fi])dnldnldnl APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARGdnlAC_DEFUN(APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG, [AC_CACHE_CHECK(whether pthread_attr_getdetachstate takes one argument, ac_cv_pthread_attr_getdetachstate_one_arg,[AC_TRY_COMPILE([#include <pthread.h>],[pthread_attr_t *attr;pthread_attr_getdetachstate(attr);],[    ac_cv_pthread_attr_getdetachstate_one_arg=yes],[    ac_cv_pthread_attr_getdetachstate_one_arg=no])])if test "$ac_cv_pthread_attr_getdetachstate_one_arg" = "yes"; then  AC_DEFINE(PTHREAD_ATTR_GETDETACHSTATE_TAKES_ONE_ARG, 1, [Define if pthread_attr_getdetachstate() has one arg])fi])dnldnldnl APR_PTHREADS_CHECK_COMPILEdnldnl Check whether the current setup can use POSIX threads callsdnlAC_DEFUN(APR_PTHREADS_CHECK_COMPILE, [AC_TRY_RUN( [#include <pthread.h>#include <stddef.h>void *thread_routine(void *data) {    return data;}int main() {    pthread_t thd;    pthread_mutexattr_t mattr;    int data = 1;    pthread_mutexattr_init(&mattr);    return pthread_create(&thd, NULL, thread_routine, &data);} ], [   pthreads_working="yes"  ], [  pthreads_working="no"  ], pthreads_working="no" )])dnldnldnl APR_PTHREADS_CHECK()dnldnl Try to find a way to enable POSIX threadsdnlAC_DEFUN(APR_PTHREADS_CHECK,[if test -n "$ac_cv_pthreads_lib"; then  LIBS="$LIBS -l$ac_cv_pthreads_lib"fiif test -n "$ac_cv_pthreads_cflags"; then  CFLAGS="$CFLAGS $ac_cv_pthreads_cflags"  THREAD_CFLAGS="$THREAD_CFLAGS $ac_cv_pthreads_cflags"fiAPR_PTHREADS_CHECK_COMPILEAC_CACHE_CHECK(for pthreads_cflags,ac_cv_pthreads_cflags,[ac_cv_pthreads_cflags=""if test "$pthreads_working" != "yes"; then  for flag in -kthread -pthread -pthreads -mthreads -Kthread -threads -mt; do     ac_save="$CFLAGS"    CFLAGS="$CFLAGS $flag"    APR_PTHREADS_CHECK_COMPILE    if test "$pthreads_working" = "yes"; then      ac_cv_pthreads_cflags="$flag"      dnl this was already added to CFLAGS; add to THREAD_CFLAGS, too      THREAD_CFLAGS="$THREAD_CFLAGS $ac_cv_pthreads_cflags"      break    fi    CFLAGS="$ac_save"  donefi])AC_CACHE_CHECK(for pthreads_lib, ac_cv_pthreads_lib,[ac_cv_pthreads_lib=""if test "$pthreads_working" != "yes"; then  for lib in pthread pthreads c_r; do    ac_save="$LIBS"    LIBS="$LIBS -l$lib"    APR_PTHREADS_CHECK_COMPILE    if test "$pthreads_working" = "yes"; then      ac_cv_pthreads_lib="$lib"      break    fi    LIBS="$ac_save"  donefi])if test "$pthreads_working" = "yes"; then  threads_result="POSIX Threads found"else  threads_result="POSIX Threads not found"fi])dnlAC_DEFUN(APR_CHECK_SIGWAIT_ONE_ARG,[  AC_CACHE_CHECK(whether sigwait takes one argument,ac_cv_sigwait_one_arg,[  AC_TRY_COMPILE([#ifdef __NETBSD__    /* When using the unproven-pthreads package, we need to pull in this     * header to get a prototype for sigwait().  Else things will fail later     * on.  XXX Should probably be fixed in the unproven-pthreads package.     */#include <pthread.h>#endif#include <signal.h>],[  sigset_t set;   sigwait(&set);],[  ac_cv_sigwait_one_arg=yes],[  ac_cv_sigwait_one_arg=no])])  if test "$ac_cv_sigwait_one_arg" = "yes"; then    AC_DEFINE(SIGWAIT_TAKES_ONE_ARG,1,[ ])  fi])                                                                              

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -