127 lines
2.9 KiB
Plaintext
127 lines
2.9 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*)
|
|
# OpenBSD users have reported that named dumps core on
|
|
# startup when built with threads.
|
|
use_threads=false ;;
|
|
*-freebsd*)
|
|
use_threads=false ;;
|
|
[*-bsdi[234]*])
|
|
# Thread signals do not work reliably on some versions of BSD/OS.
|
|
use_threads=false ;;
|
|
*-bsdi5*)
|
|
use_threads=true ;;
|
|
*-linux*)
|
|
# Threads are disabled on Linux by default because most
|
|
# Linux kernels produce unusable core dumps from multithreaded
|
|
# programs, and because of limitations in setuid().
|
|
use_threads=false ;;
|
|
*)
|
|
use_threads=false ;;
|
|
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
|