]> granicus.if.org Git - gc/commitdiff
Workaround gctest hang on kFreeBSD if thread-local allocations are on
authorIvan Maidanski <ivmai@mail.ru>
Thu, 19 Apr 2018 22:15:53 +0000 (01:15 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Thu, 19 Apr 2018 22:15:53 +0000 (01:15 +0300)
Issue #185 (bdwgc).

* configure.ac [enable_gcj_support && enable_thread_local_alloc]
(GC_ENABLE_SUSPEND_THREAD): Do not AC_DEFINE if host is kfreebsd;
add FIXME item.

configure.ac

index 35d5a45ae5101f78db6608a43860ffbe639ea32c..5dc812d63f4e5c34c1f754f1f5063671475bc36f 100644 (file)
@@ -684,8 +684,19 @@ AC_ARG_ENABLE(gcj-support,
         [Disable support for gcj.])])
 if test x"$enable_gcj_support" != xno; then
     AC_DEFINE(GC_GCJ_SUPPORT, 1, [Define to include support for gcj.])
-    AC_DEFINE([GC_ENABLE_SUSPEND_THREAD], 1,
+    case "$host" in
+      *-*-kfreebsd*-gnu)
+        # FIXME: For a reason, gctest hangs up on kFreeBSD if both of
+        # THREAD_LOCAL_ALLOC and GC_ENABLE_SUSPEND_THREAD are defined.
+        if test "${enable_thread_local_alloc}" = no; then
+          AC_DEFINE(GC_ENABLE_SUSPEND_THREAD)
+        fi
+        ;;
+      *)
+        AC_DEFINE([GC_ENABLE_SUSPEND_THREAD], 1,
               [Define to turn on GC_suspend_thread support.])
+        ;;
+    esac
 fi
 
 dnl Interaction with other programs that might use signals.