summaryrefslogtreecommitdiff
path: root/recipes/pulseaudio/pulseaudio-0.9.15/tls_m4.patch
blob: 7b333e3df9c0b381f8cd91f5ded24e0020c68dcf (plain)
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"],