1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
Index: pulseaudio-0.9.15/m4/tls.m4
===================================================================
--- pulseaudio-0.9.15.orig/m4/tls.m4 2008-08-19 23:25:02.000000000 +0200
+++ pulseaudio-0.9.15/m4/tls.m4 2009-07-10 09:55:25.266365511 +0200
@@ -1,12 +1,19 @@
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])
+ [AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
+ [chktls_save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
+ chktls_save_CFLAGS="$CFLAGS"
+ CFLAGS="-fPIC $CFLAGS"
+ dnl If -shared works, test if TLS works in a shared library.
+ AC_LINK_IFELSE([int f() { return 0; }],
+ AC_LINK_IFELSE([__thread int a; int b; int f() { return a = b; }],
+ [cc_cv_tls___thread=yes],
+ [cc_cv_tls___thread=no]),
+ [cc_cv_tls___thread=yes])
+ CFLAGS="$chktls_save_CFLAGS"
+ LDFLAGS="$chktls_save_LDFLAGS"], [cc_cv_tls___thread=no])
])
AS_IF([test "x$cc_cv_tls___thread" = "xyes"],
|