]> granicus.if.org Git - apache/commitdiff
Rewrite pthreads check to be more tool-independent, and propagate flags
authorSascha Schumann <sascha@apache.org>
Sun, 16 Jan 2000 18:24:39 +0000 (18:24 +0000)
committerSascha Schumann <sascha@apache.org>
Sun, 16 Jan 2000 18:24:39 +0000 (18:24 +0000)
to APR.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84474 13f79535-47bb-0310-9956-ffa450edef68

acinclude.m4
configure.in

index ace854801b3b907d8301ac8ba0cc721043f7b3f0..a58629e008d0406b4344af09383ccbde35a63e46 100644 (file)
@@ -141,28 +141,6 @@ AC_DEFUN(APACHE_ONCE,[
   fi
 ])
 
-dnl APACHE_CHECK_GCC_ARG(ARG, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)    
-AC_DEFUN(APACHE_CHECK_GCC_ARG,[
-  gcc_arg_name=[ac_cv_gcc_arg]translit($1,A-Z-,a-z_)
-  AC_CACHE_CHECK([whether $CC supports $1], [ac_cv_gcc_arg]translit($1,A-Z-,a-z_), [
-  echo 'void somefunc() { };' > conftest.c
-  cmd='$CC $1 -c conftest.c'
-  if eval $cmd 2>&1 | egrep -e $1 >/dev/null ; then
-    ac_result=no
-  else
-    ac_result=yes
-  fi
-  eval $gcc_arg_name=$ac_result
-  rm -f conftest.*
-  ])
-  if eval test "\$$gcc_arg_name" = "yes"; then
-    $2
-  else
-    :
-    $3
-  fi
-])
-
 dnl
 dnl APACHE_CHECK_THREADS()
 dnl
@@ -189,26 +167,35 @@ int main() {
 
 AC_DEFUN(APACHE_CHECK_THREADS,[
 
-old_CFLAGS="$CFLAGS"
+APACHE_THREAD_TEST
 
-if test -n "$GCC"; then
-  APACHE_CHECK_GCC_ARG(-pthread, [
-    CFLAGS="$CFLAGS -pthread"
-    ],[
-    APACHE_CHECK_GCC_ARG(-pthreads, [
-        CFLAGS="$CFLAGS -pthreads"
-        ],[
-        APACHE_CHECK_GCC_ARG(-mthreads, [
-            CFLAGS="$CFLAGS -mthreads"
-        ])])])
+if test "$apache_threads_working" != "yes"; then
+  for flag in -pthreads -pthread -mthreads; do 
+    AC_MSG_CHECKING(whether $flag enables POSIX threads)
+    ac_save="$CFLAGS"
+    CFLAGS="$CFLAGS $flag"
+    APACHE_THREAD_TEST
+    if test "$apache_threads_working" = "yes"; then
+      AC_MSG_RESULT(yes)
+      REENTRANCY_CFLAGS="$REENTRANCY_CFLAGS $flag"
+      break
+    fi
+    CFLAGS="$ac_save"
+    AC_MSG_RESULT(no)
+  done
 fi
 
-APACHE_THREAD_TEST
-
 if test "$apache_threads_working" != "yes"; then
-  CFLAGS="$old_CFLAGS"
-  AC_CHECK_LIB(pthread, pthread_kill)
-  APACHE_THREAD_TEST
+  for lib in pthread pthreads c_r; do
+    ac_save="$LIBS"
+    LIBS="$LIBS -l$lib"
+    APACHE_THREAD_TEST
+    if test "$apache_threads_working" = "yes"; then
+      REENTRANCY_LDFLAGS="$REENTRANCY_LDFLAGS -l$lib"
+      break
+    fi
+    LIBS="$ac_save"
+  done
 fi
 
 if test "$apache_threads_working" = "yes"; then
index 8a36169ce59fd26faea1bc95f3cb226cbd22fbde..0c11bff7ee7bd0974340dd498ade7f20e55a4490 100644 (file)
@@ -104,10 +104,12 @@ APACHE_INADDR_NONE
 
 case "`uname -sr`" in
 "SunOS 5"*)
-       REENTRANCY_FLAGS="$REENTRANCY_FLAGS -D_POSIX_PTHREAD_SEMANTICS";;
+  REENTRANCY_CFLAGS="$REENTRANCY_CFLAGS -D_POSIX_PTHREAD_SEMANTICS";;
 esac
 
-REENTRANCY_FLAGS="$REENTRANCY_FLAGS -D_REENTRANT"
+REENTRANCY_CFLAGS="$REENTRANCY_CFLAGS -D_REENTRANT"
+
+CFLAGS="$CFLAGS $REENTRANCY_CFLAGS"
 
 AC_FUNC_SELECT_ARGTYPES
 
@@ -156,7 +158,6 @@ if test "$apache_need_shared" = "yes"; then
   $SHELL $srcdir/ltconfig --output=shlibtool --disable-static --srcdir=$srcdir --cache-file=./config.cache $srcdir/ltmain.sh
 fi
 
-CPPFLAGS="$CPPFLAGS $REENTRANCY_FLAGS"
 APACHE_FAST_OUTPUT(Makefile ap/Makefile lib/Makefile main/Makefile
            modules/Makefile os/Makefile)
 APACHE_FAST_GENERATE
@@ -165,6 +166,7 @@ dnl ## Build modules.c
 rm -f $srcdir/modules.c
 echo $MODLIST | $AWK -f $srcdir/helpers/build-modules-c.awk > $srcdir/modules.c
 
-APACHE_PASSTHRU(REENTRANCY_FLAGS)
+APACHE_PASSTHRU(REENTRANCY_CFLAGS)
+APACHE_PASSTHRU(REENTRANCY_LDFLAGS)
 
 AC_OUTPUT($APACHE_OUTPUT_FILES)