diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-11-02 16:28:13 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-11-02 16:28:13 +0000 |
commit | 394f34122bc573503642d483ece32d2a1328af68 (patch) | |
tree | 84514a13ba041a3e77688e68083e9ea7085c7932 /configure | |
parent | f8415b9af852bb180203979b250c6771b4782d8a (diff) |
I'm crazy so I will add this... pthread rwlock wrappers, along with autoconf stuff that detects the presence of the initializer and the ability to set the kind of lock (in our case we rather like writer preferred locks so writer starvation doesn't occur... but on something like Darwin we don't get that)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@46935 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 175 |
1 files changed, 174 insertions, 1 deletions
@@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 46846 . +# From configure.ac Revision: 46848 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.60a. # @@ -14158,6 +14158,179 @@ fi done + + if test "x${PBX_PTHREAD_RWLOCK_INITIALIZER}" != "x1" -a "${USE_PTHREAD_RWLOCK_INITIALIZER}" != "no"; then + { echo "$as_me:$LINENO: checking for PTHREAD_RWLOCK_INITIALIZER in pthread.h" >&5 +echo $ECHO_N "checking for PTHREAD_RWLOCK_INITIALIZER in pthread.h... $ECHO_C" >&6; } + saved_cppflags="${CPPFLAGS}" + if test "x${PTHREAD_RWLOCK_INITIALIZER_DIR}" != "x"; then + PTHREAD_RWLOCK_INITIALIZER_INCLUDE= "-I${PTHREAD_RWLOCK_INITIALIZER_DIR}/include" + fi + CPPFLAGS="${CPPFLAGS} ${PTHREAD_RWLOCK_INITIALIZER_INCLUDE}" + + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <pthread.h> +int +main () +{ +int foo = PTHREAD_RWLOCK_INITIALIZER; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + PBX_PTHREAD_RWLOCK_INITIALIZER=1 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PTHREAD_RWLOCK_INITIALIZER 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PTHREAD_RWLOCK_INITIALIZER_VERSION +_ACEOF + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="${saved_cppflags}" + fi + + + if test "x${PBX_PTHREAD_RWLOCK_PREFER_WRITER_NP}" != "x1" -a "${USE_PTHREAD_RWLOCK_PREFER_WRITER_NP}" != "no"; then + { echo "$as_me:$LINENO: checking for PTHREAD_RWLOCK_PREFER_WRITER_NP in pthread.h" >&5 +echo $ECHO_N "checking for PTHREAD_RWLOCK_PREFER_WRITER_NP in pthread.h... $ECHO_C" >&6; } + saved_cppflags="${CPPFLAGS}" + if test "x${PTHREAD_RWLOCK_PREFER_WRITER_NP_DIR}" != "x"; then + PTHREAD_RWLOCK_PREFER_WRITER_NP_INCLUDE= "-I${PTHREAD_RWLOCK_PREFER_WRITER_NP_DIR}/include" + fi + CPPFLAGS="${CPPFLAGS} ${PTHREAD_RWLOCK_PREFER_WRITER_NP_INCLUDE}" + + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <pthread.h> +int +main () +{ +int foo = PTHREAD_RWLOCK_PREFER_WRITER_NP; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + PBX_PTHREAD_RWLOCK_PREFER_WRITER_NP=1 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PTHREAD_RWLOCK_PREFER_WRITER_NP 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PTHREAD_RWLOCK_PREFER_WRITER_NP_VERSION +_ACEOF + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="${saved_cppflags}" + fi + + { echo "$as_me:$LINENO: checking for compiler atomic operations" >&5 echo $ECHO_N "checking for compiler atomic operations... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF |