mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
Create a new macro for checking compiler support for TLS.
Create a new macro that can be shared between projects to check for __thread support by the compiler. This macro might come useful for xine-lib too so I want to keep it separate for easier importing it over. Name the defined macro SUPPORT_TLS___THREAD to follow the same style as the checks from attributes.m4.
This commit is contained in:
parent
81969a73a4
commit
daf3e8b97d
3 changed files with 19 additions and 12 deletions
12
configure.ac
12
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; }])
|
||||
|
|
|
|||
17
m4/tls.m4
Normal file
17
m4/tls.m4
Normal file
|
|
@ -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])
|
||||
])
|
||||
|
|
@ -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) \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue