diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-02-06 12:47:05 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-02-06 12:47:05 +0200 |
commit | 1c4d9141b013f4ab0c35be8b90f15d09c80abd9e (patch) | |
tree | 3eb7648c7da5e882d7fdc670f203a6ce0aaaf7bc /m4/threads.m4 | |
parent | 0c7ea7064e5bd6b19721f6d2ca87677dc476a190 (diff) |
Add support for disabling threads
Diffstat (limited to 'm4/threads.m4')
-rw-r--r-- | m4/threads.m4 | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/m4/threads.m4 b/m4/threads.m4 new file mode 100644 index 0000000..4cd4c05 --- /dev/null +++ b/m4/threads.m4 @@ -0,0 +1,60 @@ +dnl file : m4/threads.m4 +dnl copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC +dnl license : GNU GPL v2; see accompanying LICENSE file +dnl +AC_DEFUN([THREADS],[ + +threads_thread_keyword=no + +AC_ARG_ENABLE( + [threads], + AS_HELP_STRING([--disable-threads], [disable threads (enabled by default)]), + [AS_IF([test x"$enableval" = xno], [threads=none], [threads=check])], + [threads=check]) + +# If thread support is not disabled by the user, figure out what we can use. +# +if test x$threads = xcheck; then + case $host_os in + windows* | mingw*) + case $host_os in + mingw*) + CXXFLAGS="$CXXFLAGS -mthreads" + ;; + esac + threads=win32 + ;; + *) + ACX_PTHREAD + + if test x$acx_pthread_ok = xyes; then + threads=posix + LIBS="$LIBS $PTHREAD_LIBS" + CXXFLAGS="$CXXFLAGS $PTHREAD_CXXFLAGS" + + # Check if we can use the __thread keyword. + # + AC_MSG_CHECKING([for __thread keyword]) + + CXX_LIBTOOL_LINK_IFELSE([ + AC_LANG_SOURCE([ + __thread int tls_var; + + int + main () + { + tls_var = 0; + } + ])], + [threads_thread_keyword=yes]) + + AC_MSG_RESULT([$threads_thread_keyword]) + fi + ;; + esac +fi + +if test x$threads = xcheck; then + AC_MSG_ERROR([thread support not available; use --disable-threads to force single-threaded mode]) +fi +])dnl |