# # 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[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*) # 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 ;; *-darwin10.*) use_threads=true ;; *) 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 ], [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