This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Add ax_pthread.m4 for use in binutils-gdb
- From: Joshua Watt <jpewhacker at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 17 Apr 2018 12:24:28 -0500
- Subject: Re: [PATCH] Add ax_pthread.m4 for use in binutils-gdb
- References: <20180323024534.21170-1-JPEWhacker@gmail.com>
On Thu, 2018-03-22 at 21:45 -0500, Joshua Watt wrote:
> config/
> * ax_pthread.m4: Add file
> ---
> config/ax_pthread.m4 | 485
> +++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 485 insertions(+)
> create mode 100644 config/ax_pthread.m4
>
> diff --git a/config/ax_pthread.m4 b/config/ax_pthread.m4
> new file mode 100644
> index 00000000000..5fbf9fe0d68
> --- /dev/null
> +++ b/config/ax_pthread.m4
> @@ -0,0 +1,485 @@
> +#
> =====================================================================
> ======
> +# https://www.gnu.org/software/autoconf-archive/ax_pthread.ht
> ml
> +#
> =====================================================================
> ======
> +#
> +# SYNOPSIS
> +#
> +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
> +#
> +# DESCRIPTION
> +#
> +# This macro figures out how to build C programs using POSIX
> threads. It
> +# sets the PTHREAD_LIBS output variable to the threads library and
> linker
> +# flags, and the PTHREAD_CFLAGS output variable to any special C
> compiler
> +# flags that are needed. (The user can also force certain compiler
> +# flags/libs to be tested by setting these environment variables.)
> +#
> +# Also sets PTHREAD_CC to any special C compiler that is needed
> for
> +# multi-threaded programs (defaults to the value of CC otherwise).
> (This
> +# is necessary on AIX to use the special cc_r compiler alias.)
> +#
> +# NOTE: You are assumed to not only compile your program with
> these flags,
> +# but also to link with them as well. For example, you might link
> with
> +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS
> $LIBS
> +#
> +# If you are only building threaded programs, you may wish to use
> these
> +# variables in your default LIBS, CFLAGS, and CC:
> +#
> +# LIBS="$PTHREAD_LIBS $LIBS"
> +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
> +# CC="$PTHREAD_CC"
> +#
> +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute
> constant
> +# has a nonstandard name, this macro defines
> PTHREAD_CREATE_JOINABLE to
> +# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
> +#
> +# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found
> and the
> +# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
> +# PTHREAD_CFLAGS.
> +#
> +# ACTION-IF-FOUND is a list of shell commands to run if a threads
> library
> +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run
> it if it
> +# is not found. If ACTION-IF-FOUND is not specified, the default
> action
> +# will define HAVE_PTHREAD.
> +#
> +# Please let the authors know if this macro fails on any platform,
> or if
> +# you have any other suggestions or comments. This macro was based
> on work
> +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with
> help
> +# from M. Frigo), as well as ac_pthread and hb_pthread macros
> posted by
> +# Alejandro Forero Cuervo to the autoconf macro repository. We are
> also
> +# grateful for the helpful feedback of numerous users.
> +#
> +# Updated for Autoconf 2.68 by Daniel Richard G.
> +#
> +# LICENSE
> +#
> +# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
> +# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
> +#
> +# This program is free software: you can redistribute it and/or
> modify it
> +# under the terms of the GNU General Public License as published
> by the
> +# Free Software Foundation, either version 3 of the License, or
> (at your
> +# option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> but
> +# WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> General
> +# Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public
> License along
> +# with this program. If not, see <https://www.gnu.org/licenses/>.
> +#
> +# As a special exception, the respective Autoconf Macro's
> copyright owner
> +# gives unlimited permission to copy, distribute and modify the
> configure
> +# scripts that are the output of Autoconf when processing the
> Macro. You
> +# need not follow the terms of the GNU General Public License when
> using
> +# or distributing such scripts, even though portions of the text
> of the
> +# Macro appear in them. The GNU General Public License (GPL) does
> govern
> +# all other use of the material that constitutes the Autoconf
> Macro.
> +#
> +# This special exception to the GPL applies to versions of the
> Autoconf
> +# Macro released by the Autoconf Archive. When you make and
> distribute a
> +# modified version of the Autoconf Macro, you may extend this
> special
> +# exception to the GPL to apply to your modified version as well.
> +
> +#serial 24
> +
> +AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
> +AC_DEFUN([AX_PTHREAD], [
> +AC_REQUIRE([AC_CANONICAL_HOST])
> +AC_REQUIRE([AC_PROG_CC])
> +AC_REQUIRE([AC_PROG_SED])
> +AC_LANG_PUSH([C])
> +ax_pthread_ok=no
> +
> +# We used to check for pthread.h first, but this fails if pthread.h
> +# requires special compiler flags (e.g. on Tru64 or Sequent).
> +# It gets checked for in the link test anyway.
> +
> +# First of all, check if the user has set any of the PTHREAD_LIBS,
> +# etcetera environment variables, and if threads linking works using
> +# them:
> +if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
> + ax_pthread_save_CC="$CC"
> + ax_pthread_save_CFLAGS="$CFLAGS"
> + ax_pthread_save_LIBS="$LIBS"
> + AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
> + CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
> + LIBS="$PTHREAD_LIBS $LIBS"
> + AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS
> $PTHREAD_LIBS])
> + AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])],
> [ax_pthread_ok=yes])
> + AC_MSG_RESULT([$ax_pthread_ok])
> + if test "x$ax_pthread_ok" = "xno"; then
> + PTHREAD_LIBS=""
> + PTHREAD_CFLAGS=""
> + fi
> + CC="$ax_pthread_save_CC"
> + CFLAGS="$ax_pthread_save_CFLAGS"
> + LIBS="$ax_pthread_save_LIBS"
> +fi
> +
> +# We must check for the threads library under a number of different
> +# names; the ordering is very important because some systems
> +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
> +# libraries is broken (non-POSIX).
> +
> +# Create a list of thread flags to try. Items starting with a "-"
> are
> +# C compiler flags, and other items are library names, except for
> "none"
> +# which indicates that we try without any flags at all, and
> "pthread-config"
> +# which is a program returning the flags for the Pth emulation
> library.
> +
> +ax_pthread_flags="pthreads none -Kthread -pthread -pthreads
> -mthreads pthread --thread-safe -mt pthread-config"
> +
> +# The ordering *is* (sometimes) important. Some notes on the
> +# individual items follow:
> +
> +# pthreads: AIX (must check this before -lpthread)
> +# none: in case threads are in libc; should be tried before -Kthread
> and
> +# other compiler flags to prevent continual compiler warnings
> +# -Kthread: Sequent (threads in libc, but -Kthread needed for
> pthread.h)
> +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads),
> Tru64
> +# (Note: HP C rejects this with "bad form for `-t'
> option")
> +# -pthreads: Solaris/gcc (Note: HP C also rejects)
> +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but
> it
> +# doesn't hurt to check since this sometimes defines pthreads
> and
> +# -D_REENTRANT too), HP C (must be checked before -lpthread,
> which
> +# is present but should not be used directly; and before
> -mthreads,
> +# because the compiler interprets this as "-mt" + "-hreads")
> +# -mthreads: Mingw32/gcc, Lynx/gcc
> +# pthread: Linux, etcetera
> +# --thread-safe: KAI C++
> +# pthread-config: use pthread-config program (for GNU Pth library)
> +
> +case $host_os in
> +
> + freebsd*)
> +
> + # -kthread: FreeBSD kernel threads (preferred to -pthread
> since SMP-able)
> + # lthread: LinuxThreads port on FreeBSD (also preferred to
> -pthread)
> +
> + ax_pthread_flags="-kthread lthread $ax_pthread_flags"
> + ;;
> +
> + hpux*)
> +
> + # From the cc(1) man page: "[-mt] Sets various -D flags to
> enable
> + # multi-threading and also sets -lpthread."
> +
> + ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
> + ;;
> +
> + openedition*)
> +
> + # IBM z/OS requires a feature-test macro to be defined in
> order to
> + # enable POSIX threads at all, so give the user a hint if
> this is
> + # not set. (We don't define these ourselves, as they can
> affect
> + # other portions of the system API in unpredictable ways.)
> +
> + AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
> + [
> +# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
> + AX_PTHREAD_ZOS_MISSING
> +# endif
> + ],
> + [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or
> -D_UNIX03_THREADS to enable pthreads support.])])
> + ;;
> +
> + solaris*)
> +
> + # On Solaris (at least, for some versions), libc contains
> stubbed
> + # (non-functional) versions of the pthreads routines, so
> link-based
> + # tests will erroneously succeed. (N.B.: The stubs are
> missing
> + # pthread_cleanup_push, or rather a function called by this
> macro,
> + # so we could check for that, but who knows whether they'll
> stub
> + # that too in a future libc.) So we'll check first for the
> + # standard Solaris way of linking pthreads (-mt -lpthread).
> +
> + ax_pthread_flags="-mt,pthread pthread $ax_pthread_flags"
> + ;;
> +esac
> +
> +# GCC generally uses -pthread, or -pthreads on some platforms (e.g.
> SPARC)
> +
> +AS_IF([test "x$GCC" = "xyes"],
> + [ax_pthread_flags="-pthread -pthreads $ax_pthread_flags"])
> +
> +# The presence of a feature test macro requesting re-entrant
> function
> +# definitions is, on some systems, a strong hint that pthreads
> support is
> +# correctly enabled
> +
> +case $host_os in
> + darwin* | hpux* | linux* | osf* | solaris*)
> + ax_pthread_check_macro="_REENTRANT"
> + ;;
> +
> + aix*)
> + ax_pthread_check_macro="_THREAD_SAFE"
> + ;;
> +
> + *)
> + ax_pthread_check_macro="--"
> + ;;
> +esac
> +AS_IF([test "x$ax_pthread_check_macro" = "x--"],
> + [ax_pthread_check_cond=0],
> + [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
> +
> +# Are we compiling with Clang?
> +
> +AC_CACHE_CHECK([whether $CC is Clang],
> + [ax_cv_PTHREAD_CLANG],
> + [ax_cv_PTHREAD_CLANG=no
> + # Note that Autoconf sets GCC=yes for Clang as well as GCC
> + if test "x$GCC" = "xyes"; then
> + AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
> + [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
> +# if defined(__clang__) && defined(__llvm__)
> + AX_PTHREAD_CC_IS_CLANG
> +# endif
> + ],
> + [ax_cv_PTHREAD_CLANG=yes])
> + fi
> + ])
> +ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
> +
> +ax_pthread_clang_warning=no
> +
> +# Clang needs special handling, because older versions handle the
> -pthread
> +# option in a rather... idiosyncratic way
> +
> +if test "x$ax_pthread_clang" = "xyes"; then
> +
> + # Clang takes -pthread; it has never supported any other
> flag
> +
> + # (Note 1: This will need to be revisited if a system that
> Clang
> + # supports has POSIX threads in a separate library. This
> tends not
> + # to be the way of modern systems, but it's conceivable.)
> +
> + # (Note 2: On some systems, notably Darwin, -pthread is not
> needed
> + # to get POSIX threads support; the API is always present
> and
> + # active. We could reasonably leave PTHREAD_CFLAGS
> empty. But
> + # -pthread does define _REENTRANT, and while the Darwin
> headers
> + # ignore this macro, third-party headers might not.)
> +
> + PTHREAD_CFLAGS="-pthread"
> + PTHREAD_LIBS=
> +
> + ax_pthread_ok=yes
> +
> + # However, older versions of Clang make a point of warning
> the user
> + # that, in an invocation where only linking and no
> compilation is
> + # taking place, the -pthread option has no effect ("argument
> unused
> + # during compilation"). They expect -pthread to be passed
> in only
> + # when source code is being compiled.
> + #
> + # Problem is, this is at odds with the way Automake and most
> other
> + # C build frameworks function, which is that the same flags
> used in
> + # compilation (CFLAGS) are also used in linking. Many
> systems
> + # supported by AX_PTHREAD require exactly this for POSIX
> threads
> + # support, and in fact it is often not straightforward to
> specify a
> + # flag that is used only in the compilation phase and not in
> + # linking. Such a scenario is extremely rare in practice.
> + #
> + # Even though use of the -pthread flag in linking would only
> print
> + # a warning, this can be a nuisance for well-run software
> projects
> + # that build with -Werror. So if the active version of
> Clang has
> + # this misfeature, we search for an option to squash it.
> +
> + AC_CACHE_CHECK([whether Clang needs flag to prevent
> "argument unused" warning when linking with -pthread],
> + [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
> + [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
> + # Create an alternate version of $ac_link that compiles
> and
> + # links in two steps (.c -> .o, .o -> exe) instead of
> one
> + # (.c -> exe), because the warning occurs only in the
> second
> + # step
> + ax_pthread_save_ac_link="$ac_link"
> + ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objex
> t/g'
> + ax_pthread_link_step=`$as_echo "$ac_link" | sed
> "$ax_pthread_sed"`
> + ax_pthread_2step_ac_link="($ac_compile) && (echo ====
> >&5) && ($ax_pthread_link_step)"
> + ax_pthread_save_CFLAGS="$CFLAGS"
> + for ax_pthread_try in '' -Qunused-arguments -Wno-
> unused-command-line-argument unknown; do
> + AS_IF([test "x$ax_pthread_try" = "xunknown"],
> [break])
> + CFLAGS="-Werror -Wunknown-warning-option
> $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
> + ac_link="$ax_pthread_save_ac_link"
> + AC_LINK_IFELSE([AC_LANG_SOURCE([[int
> main(void){return 0;}]])],
> + [ac_link="$ax_pthread_2step_ac_link"
> + AC_LINK_IFELSE([AC_LANG_SOURCE([[int
> main(void){return 0;}]])],
> + [break])
> + ])
> + done
> + ac_link="$ax_pthread_save_ac_link"
> + CFLAGS="$ax_pthread_save_CFLAGS"
> + AS_IF([test "x$ax_pthread_try" = "x"],
> [ax_pthread_try=no])
> + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
> + ])
> +
> + case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
> + no | unknown) ;;
> + *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG
> $PTHREAD_CFLAGS" ;;
> + esac
> +
> +fi # $ax_pthread_clang = yes
> +
> +if test "x$ax_pthread_ok" = "xno"; then
> +for ax_pthread_try_flag in $ax_pthread_flags; do
> +
> + case $ax_pthread_try_flag in
> + none)
> + AC_MSG_CHECKING([whether pthreads work without any
> flags])
> + ;;
> +
> + -mt,pthread)
> + AC_MSG_CHECKING([whether pthreads work with -mt
> -lpthread])
> + PTHREAD_CFLAGS="-mt"
> + PTHREAD_LIBS="-lpthread"
> + ;;
> +
> + -*)
> + AC_MSG_CHECKING([whether pthreads work with
> $ax_pthread_try_flag])
> + PTHREAD_CFLAGS="$ax_pthread_try_flag"
> + ;;
> +
> + pthread-config)
> + AC_CHECK_PROG([ax_pthread_config], [pthread-config],
> [yes], [no])
> + AS_IF([test "x$ax_pthread_config" = "xno"],
> [continue])
> + PTHREAD_CFLAGS="`pthread-config --cflags`"
> + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-
> config --libs`"
> + ;;
> +
> + *)
> + AC_MSG_CHECKING([for the pthreads library
> -l$ax_pthread_try_flag])
> + PTHREAD_LIBS="-l$ax_pthread_try_flag"
> + ;;
> + esac
> +
> + ax_pthread_save_CFLAGS="$CFLAGS"
> + ax_pthread_save_LIBS="$LIBS"
> + CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
> + LIBS="$PTHREAD_LIBS $LIBS"
> +
> + # Check for various functions. We must include pthread.h,
> + # since some functions may be macros. (On the Sequent, we
> + # need a special flag -Kthread to make this header compile.)
> + # We check for pthread_join because it is in -lpthread on
> IRIX
> + # while pthread_create is in libc. We check for
> pthread_attr_init
> + # due to DEC craziness with -lpthreads. We check for
> + # pthread_cleanup_push because it is one of the few pthread
> + # functions on Solaris that doesn't have a non-functional
> libc stub.
> + # We try pthread_create on general principles.
> +
> + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
> +# if $ax_pthread_check_cond
> +# error "$ax_pthread_check_macro must be
> defined"
> +# endif
> + static void routine(void *a) { a = 0; }
> + static void *start_routine(void *a) { return
> a; }],
> + [pthread_t th; pthread_attr_t attr;
> + pthread_create(&th, 0, start_routine, 0);
> + pthread_join(th, 0);
> + pthread_attr_init(&attr);
> + pthread_cleanup_push(routine, 0);
> + pthread_cleanup_pop(0) /* ; */])],
> + [ax_pthread_ok=yes],
> + [])
> +
> + CFLAGS="$ax_pthread_save_CFLAGS"
> + LIBS="$ax_pthread_save_LIBS"
> +
> + AC_MSG_RESULT([$ax_pthread_ok])
> + AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
> +
> + PTHREAD_LIBS=""
> + PTHREAD_CFLAGS=""
> +done
> +fi
> +
> +# Various other checks:
> +if test "x$ax_pthread_ok" = "xyes"; then
> + ax_pthread_save_CFLAGS="$CFLAGS"
> + ax_pthread_save_LIBS="$LIBS"
> + CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
> + LIBS="$PTHREAD_LIBS $LIBS"
> +
> + # Detect AIX lossage: JOINABLE attribute is called
> UNDETACHED.
> + AC_CACHE_CHECK([for joinable pthread attribute],
> + [ax_cv_PTHREAD_JOINABLE_ATTR],
> + [ax_cv_PTHREAD_JOINABLE_ATTR=unknown
> + for ax_pthread_attr in PTHREAD_CREATE_JOINABLE
> PTHREAD_CREATE_UNDETACHED; do
> + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include
> <pthread.h>],
> + [int attr =
> $ax_pthread_attr; return attr /* ; */])],
> + [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pth
> read_attr; break],
> + [])
> + done
> + ])
> + AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" &&
> \
> + test "x$ax_cv_PTHREAD_JOINABLE_ATTR" !=
> "xPTHREAD_CREATE_JOINABLE" && \
> + test "x$ax_pthread_joinable_attr_defined" != "xyes"],
> + [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
> + [$ax_cv_PTHREAD_JOINABLE_ATTR],
> + [Define to necessary symbol if
> this constant
> + uses a non-standard name on your
> system.])
> + ax_pthread_joinable_attr_defined=yes
> + ])
> +
> + AC_CACHE_CHECK([whether more special flags are required for
> pthreads],
> + [ax_cv_PTHREAD_SPECIAL_FLAGS],
> + [ax_cv_PTHREAD_SPECIAL_FLAGS=no
> + case $host_os in
> + solaris*)
> + ax_cv_PTHREAD_SPECIAL_FLAGS="-
> D_POSIX_PTHREAD_SEMANTICS"
> + ;;
> + esac
> + ])
> + AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
> + test "x$ax_pthread_special_flags_added" != "xyes"],
> + [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS
> $PTHREAD_CFLAGS"
> + ax_pthread_special_flags_added=yes])
> +
> + AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
> + [ax_cv_PTHREAD_PRIO_INHERIT],
> + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include
> <pthread.h>]],
> + [[int i =
> PTHREAD_PRIO_INHERIT;]])],
> + [ax_cv_PTHREAD_PRIO_INHERIT=yes],
> + [ax_cv_PTHREAD_PRIO_INHERIT=no])
> + ])
> + AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
> + test "x$ax_pthread_prio_inherit_defined" != "xyes"],
> + [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have
> PTHREAD_PRIO_INHERIT.])
> + ax_pthread_prio_inherit_defined=yes
> + ])
> +
> + CFLAGS="$ax_pthread_save_CFLAGS"
> + LIBS="$ax_pthread_save_LIBS"
> +
> + # More AIX lossage: compile with *_r variant
> + if test "x$GCC" != "xyes"; then
> + case $host_os in
> + aix*)
> + AS_CASE(["x/$CC"],
> + [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc
> 128|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])],[PTHREA
> D_CC="${CC}_r"])],
> + [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC
> ])])])
> + ;;
> + esac
> + fi
> +fi
> +
> +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
> +
> +AC_SUBST([PTHREAD_LIBS])
> +AC_SUBST([PTHREAD_CFLAGS])
> +AC_SUBST([PTHREAD_CC])
> +
> +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
> +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])
> + :
> +else
> + ax_pthread_ok=no
> + $2
> +fi
> +AC_LANG_POP
> +])dnl AX_PTHREAD
Ping? I'd really like to get this in binutils, which apparently
requires getting it here first.
Thanks,
Joshua Watt