diff options
| -rw-r--r-- | configure.ac | 12 | ||||
| -rw-r--r-- | m4/tls.m4 | 17 | ||||
| -rw-r--r-- | src/pulsecore/thread.h | 2 | 
3 files changed, 19 insertions, 12 deletions
| diff --git a/configure.ac b/configure.ac index f56be997..7c9da77c 100644 --- a/configure.ac +++ b/configure.ac @@ -199,17 +199,7 @@ else      esac  fi -AC_MSG_CHECKING([whether $CC knows __thread]) -AC_LANG_CONFTEST([static __thread int a = 6; int main() { a = 5; }]) -$CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null -ret=$? -rm -f conftest.o conftest -if test $ret -eq 0 ; then -    AC_DEFINE([HAVE_TLS_BUILTIN], 1, [Have __thread().]) -    AC_MSG_RESULT([yes]) -else -    AC_MSG_RESULT([no]) -fi +CC_CHECK_TLS  AC_MSG_CHECKING([whether $CC knows _Bool])  AC_LANG_CONFTEST([int main() { _Bool b; }]) diff --git a/m4/tls.m4 b/m4/tls.m4 new file mode 100644 index 00000000..3808f06e --- /dev/null +++ b/m4/tls.m4 @@ -0,0 +1,17 @@ +AC_DEFUN([CC_CHECK_TLS], [ +  AC_CACHE_CHECK([whether $CC knows __thread for Thread-Local Storage], +    cc_cv_tls___thread, +    [AC_COMPILE_IFELSE( +      AC_LANG_PROGRAM( +        [[static __thread int a = 6;]], +        [[a = 5;]]), +      [cc_cv_tls___thread=yes], +      [cc_cv_tls___thread=no]) +    ]) +   +  AS_IF([test "x$cc_cv_tls___thread" = "xyes"], +    [AC_DEFINE([SUPPORT_TLS___THREAD], 1, +     [Define this if the compiler supports __thread for Thread-Local Storage]) +     $1], +    [$2]) +]) diff --git a/src/pulsecore/thread.h b/src/pulsecore/thread.h index f3aca13e..87e850d6 100644 --- a/src/pulsecore/thread.h +++ b/src/pulsecore/thread.h @@ -86,7 +86,7 @@ void *pa_tls_set(pa_tls *t, void *userdata);      }                                                                   \      struct __stupid_useless_struct_to_allow_trailing_semicolon -#ifdef HAVE_TLS_BUILTIN +#ifdef SUPPORT_TLS___THREAD  /* An optimized version of the above that requires no dynamic   * allocation if the compiler supports __thread */  #define PA_STATIC_TLS_DECLARE_NO_FREE(name)                             \ | 
