135 lines
3.0 KiB
Plaintext
135 lines
3.0 KiB
Plaintext
|
#
|
||
|
# Begin pthreads checking.
|
||
|
#
|
||
|
# First, decide whether to use multithreading or not.
|
||
|
#
|
||
|
# Enable multithreading by default on systems where it is known
|
||
|
# to work well, and where debugging of multithreaded programs
|
||
|
# is supported.
|
||
|
#
|
||
|
|
||
|
AC_MSG_CHECKING(whether to build with thread support)
|
||
|
|
||
|
case $host in
|
||
|
*-dec-osf*)
|
||
|
use_threads=true ;;
|
||
|
[*-solaris2.[0-6]])
|
||
|
# Thread signals are broken on Solaris 2.6; they are sometimes
|
||
|
# delivered to the wrong thread.
|
||
|
use_threads=false ;;
|
||
|
*-solaris*)
|
||
|
use_threads=true ;;
|
||
|
*-ibm-aix*)
|
||
|
use_threads=true ;;
|
||
|
*-hp-hpux10*)
|
||
|
use_threads=false ;;
|
||
|
*-hp-hpux11*)
|
||
|
use_threads=true ;;
|
||
|
*-sgi-irix*)
|
||
|
use_threads=true ;;
|
||
|
*-sco-sysv*uw*|*-*-sysv*UnixWare*)
|
||
|
# UnixWare
|
||
|
use_threads=false ;;
|
||
|
*-*-sysv*OpenUNIX*)
|
||
|
# UnixWare
|
||
|
use_threads=true ;;
|
||
|
[*-netbsd[1234].*])
|
||
|
# NetBSD earlier than NetBSD 5.0 has poor pthreads.
|
||
|
# Don't use it by default.
|
||
|
use_threads=false ;;
|
||
|
*-netbsd*)
|
||
|
use_threads=true ;;
|
||
|
[*-openbsd[12345].*]|[*-openbsd6.[01]])
|
||
|
# OpenBSD users reported that named dumps core on
|
||
|
# startup when built with threads.
|
||
|
use_threads=false ;;
|
||
|
*-openbsd*)
|
||
|
use_threads=true ;;
|
||
|
[*-freebsd[1234567].*])
|
||
|
# Threads are broken at least up to FreeBSD 4.11.
|
||
|
# FreeBSD 5, 6 and 7 we have never officially supported threads
|
||
|
# on. YMMV
|
||
|
use_threads=false ;;
|
||
|
*-freebsd*)
|
||
|
use_threads=true ;;
|
||
|
[*-bsdi[234]*])
|
||
|
# Thread signals do not work reliably on some versions of BSD/OS.
|
||
|
use_threads=false ;;
|
||
|
*-bsdi5*)
|
||
|
use_threads=true ;;
|
||
|
*-linux*)
|
||
|
use_threads=true ;;
|
||
|
*-darwin[[123456789]].*)
|
||
|
use_threads=false ;;
|
||
|
*-darwin*.*)
|
||
|
use_threads=true ;;
|
||
|
*)
|
||
|
use_threads=true ;;
|
||
|
esac
|
||
|
|
||
|
AC_ARG_ENABLE(threads,
|
||
|
[ --enable-threads enable multithreading])
|
||
|
case "$enable_threads" in
|
||
|
yes)
|
||
|
use_threads=true
|
||
|
;;
|
||
|
no)
|
||
|
use_threads=false
|
||
|
;;
|
||
|
'')
|
||
|
# Use system-dependent default
|
||
|
;;
|
||
|
*)
|
||
|
AC_MSG_ERROR([--enable-threads takes yes or no])
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
if $use_threads
|
||
|
then
|
||
|
AC_MSG_RESULT(yes)
|
||
|
else
|
||
|
AC_MSG_RESULT(no)
|
||
|
fi
|
||
|
|
||
|
if $use_threads
|
||
|
then
|
||
|
#
|
||
|
# Search for / configure pthreads in a system-dependent fashion.
|
||
|
#
|
||
|
case "$host" in
|
||
|
*-freebsd*)
|
||
|
# We don't want to set -lpthread as that break
|
||
|
# the ability to choose threads library at final
|
||
|
# link time and is not valid for all architectures.
|
||
|
|
||
|
PTHREAD=
|
||
|
if test "X$GCC" = "Xyes"; then
|
||
|
saved_cc="$CC"
|
||
|
CC="$CC -pthread"
|
||
|
AC_MSG_CHECKING(for gcc -pthread support);
|
||
|
AC_TRY_LINK([#include <pthread.h>],
|
||
|
[printf("%x\n", pthread_create);],
|
||
|
PTHREAD="yes"
|
||
|
AC_MSG_RESULT(yes),
|
||
|
AC_MSG_RESULT(no))
|
||
|
CC="$saved_cc"
|
||
|
fi
|
||
|
if test "X$PTHREAD" != "Xyes"; then
|
||
|
AC_CHECK_LIB(pthread, pthread_create,,
|
||
|
AC_CHECK_LIB(thr, thread_create,,
|
||
|
AC_CHECK_LIB(c_r, pthread_create,,
|
||
|
AC_CHECK_LIB(c, pthread_create,,
|
||
|
AC_MSG_ERROR("could not find thread libraries")))))
|
||
|
fi
|
||
|
;;
|
||
|
*)
|
||
|
AC_CHECK_LIB(pthread, pthread_create,,
|
||
|
AC_CHECK_LIB(pthread, __pthread_create,,
|
||
|
AC_CHECK_LIB(pthread, __pthread_create_system,,
|
||
|
AC_CHECK_LIB(c_r, pthread_create,,
|
||
|
AC_CHECK_LIB(c, pthread_create,,
|
||
|
AC_MSG_ERROR("could not find thread libraries"))))))
|
||
|
;;
|
||
|
esac
|
||
|
fi
|