SRFI-35: Provide nice vtable names, to make GOOPS happier.
[bpt/guile.git] / acinclude.m4
index 1b836cc..43a227b 100644 (file)
@@ -335,6 +335,29 @@ AC_DEFUN([GUILE_GNU_LD_RELRO], [
   AC_SUBST([GNU_LD_FLAGS])
 ])
 
+dnl GUILE_THREAD_LOCAL_STORAGE
+dnl
+dnl Check for compiler thread-local storage (TLS) support.
+AC_DEFUN([GUILE_THREAD_LOCAL_STORAGE], [
+  AC_CACHE_CHECK([whether the `__thread' storage class is available],
+    [ac_cv_have_thread_storage_class],
+    [dnl On some systems, e.g., NetBSD 5.0 with GCC 4.1, `__thread' is
+     dnl properly compiled but fails to link due to the lack of TLS
+     dnl support in the C library.  Thus we try to link, not just compile.
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([__thread int tls_integer;],
+                     [tls_integer = 123;])],
+       [ac_cv_have_thread_storage_class="yes"],
+       [ac_cv_have_thread_storage_class="no"])])
+
+  if test "x$ac_cv_have_thread_storage_class" = "xyes"; then
+     SCM_I_GSC_HAVE_THREAD_STORAGE_CLASS=1
+  else
+     SCM_I_GSC_HAVE_THREAD_STORAGE_CLASS=0
+  fi
+
+  AC_SUBST([SCM_I_GSC_HAVE_THREAD_STORAGE_CLASS])
+])
+
 dnl GUILE_READLINE
 dnl
 dnl Check all the things needed by `guile-readline', the Readline