Build: Update m4/ax_pthread.m4 from Autoconf Archive.
This commit is contained in:
parent
6ed0554a15
commit
b46fe3ced9
|
@ -82,7 +82,7 @@
|
||||||
# modified version of the Autoconf Macro, you may extend this special
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
# exception to the GPL to apply to your modified version as well.
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
|
||||||
#serial 18
|
#serial 21
|
||||||
|
|
||||||
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
|
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
|
||||||
AC_DEFUN([AX_PTHREAD], [
|
AC_DEFUN([AX_PTHREAD], [
|
||||||
|
@ -103,8 +103,8 @@ if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
|
||||||
save_LIBS="$LIBS"
|
save_LIBS="$LIBS"
|
||||||
LIBS="$PTHREAD_LIBS $LIBS"
|
LIBS="$PTHREAD_LIBS $LIBS"
|
||||||
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
|
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
|
||||||
AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes)
|
AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
|
||||||
AC_MSG_RESULT($ax_pthread_ok)
|
AC_MSG_RESULT([$ax_pthread_ok])
|
||||||
if test x"$ax_pthread_ok" = xno; then
|
if test x"$ax_pthread_ok" = xno; then
|
||||||
PTHREAD_LIBS=""
|
PTHREAD_LIBS=""
|
||||||
PTHREAD_CFLAGS=""
|
PTHREAD_CFLAGS=""
|
||||||
|
@ -164,6 +164,20 @@ case ${host_os} in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# Clang doesn't consider unrecognized options an error unless we specify
|
||||||
|
# -Werror. We throw in some extra Clang-specific options to ensure that
|
||||||
|
# this doesn't happen for GCC, which also accepts -Werror.
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
ax_pthread_extra_flags="-Werror"
|
||||||
|
CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
|
||||||
|
[AC_MSG_RESULT([yes])],
|
||||||
|
[ax_pthread_extra_flags=
|
||||||
|
AC_MSG_RESULT([no])])
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
|
||||||
if test x"$ax_pthread_ok" = xno; then
|
if test x"$ax_pthread_ok" = xno; then
|
||||||
for flag in $ax_pthread_flags; do
|
for flag in $ax_pthread_flags; do
|
||||||
|
|
||||||
|
@ -178,7 +192,7 @@ for flag in $ax_pthread_flags; do
|
||||||
;;
|
;;
|
||||||
|
|
||||||
pthread-config)
|
pthread-config)
|
||||||
AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
|
AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
|
||||||
if test x"$ax_pthread_config" = xno; then continue; fi
|
if test x"$ax_pthread_config" = xno; then continue; fi
|
||||||
PTHREAD_CFLAGS="`pthread-config --cflags`"
|
PTHREAD_CFLAGS="`pthread-config --cflags`"
|
||||||
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
|
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
|
||||||
|
@ -193,7 +207,7 @@ for flag in $ax_pthread_flags; do
|
||||||
save_LIBS="$LIBS"
|
save_LIBS="$LIBS"
|
||||||
save_CFLAGS="$CFLAGS"
|
save_CFLAGS="$CFLAGS"
|
||||||
LIBS="$PTHREAD_LIBS $LIBS"
|
LIBS="$PTHREAD_LIBS $LIBS"
|
||||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
|
||||||
|
|
||||||
# Check for various functions. We must include pthread.h,
|
# Check for various functions. We must include pthread.h,
|
||||||
# since some functions may be macros. (On the Sequent, we
|
# since some functions may be macros. (On the Sequent, we
|
||||||
|
@ -219,7 +233,7 @@ for flag in $ax_pthread_flags; do
|
||||||
LIBS="$save_LIBS"
|
LIBS="$save_LIBS"
|
||||||
CFLAGS="$save_CFLAGS"
|
CFLAGS="$save_CFLAGS"
|
||||||
|
|
||||||
AC_MSG_RESULT($ax_pthread_ok)
|
AC_MSG_RESULT([$ax_pthread_ok])
|
||||||
if test "x$ax_pthread_ok" = xyes; then
|
if test "x$ax_pthread_ok" = xyes; then
|
||||||
break;
|
break;
|
||||||
fi
|
fi
|
||||||
|
@ -245,9 +259,9 @@ if test "x$ax_pthread_ok" = xyes; then
|
||||||
[attr_name=$attr; break],
|
[attr_name=$attr; break],
|
||||||
[])
|
[])
|
||||||
done
|
done
|
||||||
AC_MSG_RESULT($attr_name)
|
AC_MSG_RESULT([$attr_name])
|
||||||
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
|
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
|
||||||
AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
|
AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
|
||||||
[Define to necessary symbol if this constant
|
[Define to necessary symbol if this constant
|
||||||
uses a non-standard name on your system.])
|
uses a non-standard name on your system.])
|
||||||
fi
|
fi
|
||||||
|
@ -261,45 +275,54 @@ if test "x$ax_pthread_ok" = xyes; then
|
||||||
if test "$GCC" = "yes"; then
|
if test "$GCC" = "yes"; then
|
||||||
flag="-D_REENTRANT"
|
flag="-D_REENTRANT"
|
||||||
else
|
else
|
||||||
|
# TODO: What about Clang on Solaris?
|
||||||
flag="-mt -D_REENTRANT"
|
flag="-mt -D_REENTRANT"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
AC_MSG_RESULT(${flag})
|
AC_MSG_RESULT([$flag])
|
||||||
if test "x$flag" != xno; then
|
if test "x$flag" != xno; then
|
||||||
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
|
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
|
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
|
||||||
ax_cv_PTHREAD_PRIO_INHERIT, [
|
[ax_cv_PTHREAD_PRIO_INHERIT], [
|
||||||
AC_LINK_IFELSE([
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
|
||||||
AC_LANG_PROGRAM([[#include <pthread.h>]], [[int i = PTHREAD_PRIO_INHERIT;]])],
|
[[int i = PTHREAD_PRIO_INHERIT;]])],
|
||||||
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
|
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
|
||||||
[ax_cv_PTHREAD_PRIO_INHERIT=no])
|
[ax_cv_PTHREAD_PRIO_INHERIT=no])
|
||||||
])
|
])
|
||||||
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
|
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
|
||||||
AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.]))
|
[AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
|
||||||
|
|
||||||
LIBS="$save_LIBS"
|
LIBS="$save_LIBS"
|
||||||
CFLAGS="$save_CFLAGS"
|
CFLAGS="$save_CFLAGS"
|
||||||
|
|
||||||
# More AIX lossage: must compile with xlc_r or cc_r
|
# More AIX lossage: compile with *_r variant
|
||||||
if test x"$GCC" != xyes; then
|
if test "x$GCC" != xyes; then
|
||||||
AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
|
case $host_os in
|
||||||
else
|
aix*)
|
||||||
PTHREAD_CC=$CC
|
AS_CASE(["x/$CC"],
|
||||||
|
[x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
|
||||||
|
[#handle absolute path differently from PATH based program lookup
|
||||||
|
AS_CASE(["x$CC"],
|
||||||
|
[x/*],
|
||||||
|
[AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
|
||||||
|
[AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
PTHREAD_CC="$CC"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(PTHREAD_LIBS)
|
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
|
||||||
AC_SUBST(PTHREAD_CFLAGS)
|
|
||||||
AC_SUBST(PTHREAD_CC)
|
AC_SUBST([PTHREAD_LIBS])
|
||||||
|
AC_SUBST([PTHREAD_CFLAGS])
|
||||||
|
AC_SUBST([PTHREAD_CC])
|
||||||
|
|
||||||
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
||||||
if test x"$ax_pthread_ok" = xyes; then
|
if test x"$ax_pthread_ok" = xyes; then
|
||||||
ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
|
ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
ax_pthread_ok=no
|
ax_pthread_ok=no
|
||||||
|
|
Loading…
Reference in New Issue