gnucash-on-windows master: Build Guile without thread support.

John Ralls jralls at code.gnucash.org
Sat May 16 20:28:38 EDT 2020


Updated	 via  https://github.com/Gnucash/gnucash-on-windows/commit/5e67ac41 (commit)
	from  https://github.com/Gnucash/gnucash-on-windows/commit/1a58fa9b (commit)



commit 5e67ac411a48cb31b06d76615b2fd87a1c99c069
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat May 16 17:28:26 2020 -0700

    Build Guile without thread support.
    
    An attempt to prevent garbage collection deadlocks.

diff --git a/gnucash.modules b/gnucash.modules
index 16a59e0..861c5e0 100644
--- a/gnucash.modules
+++ b/gnucash.modules
@@ -102,7 +102,7 @@
   </autotools>
 
   <autotools id="bdw-gc" autogen-template="/bin/bash -c 'pushd %(srcdir)s && ./autogen.sh && automake -ac && popd && %(srcdir)s/configure --prefix %(prefix)s  %(autogenargs)s'"
-	     autogenargs="--enable-threads=pthreads --enable-shared --disable-static">
+	     autogenargs="--enable-threads=no --disable-parallel-mark --enable-shared --disable-static">
     <branch repo="github" module="ivmai/bdwgc"  revision="gc7_6_0" />
     <dependencies>
       <dep package="libatomic-ops"/>
@@ -118,13 +118,13 @@
     </dependencies>
   </autotools>
 
-  <autotools id="guile2" autogen-sh="configure" autogenargs="--disable-rpath --enable-networking --enable-nls --enable-posix --enable-regex --with-threads --with-modules --disable-static">
+  <autotools id="guile2" autogen-sh="autoreconf" autogenargs="--disable-rpath --enable-networking --enable-nls --enable-posix --enable-regex --with-threads=no --with-modules --disable-static">
     <branch repo="sourceforge" module="gnucash/Dependencies/guile-2.2.4.68-65d98.tar.xz"
 	    version=" 2.2.4.68-65d98">
       <patch file="0001-Fix-build-on-MinGW-w64.patch" strip="1"/>
       <patch file="0002-MinGW-Don-t-break-build-when-including-libguile.h.patch" strip="1"/>
       <patch file="0003-AC_DEFINE-REPLACE_MKTIME.patch" strip="1"/>
-
+      <patch file="0001-MinGW-doesn't-do-signals.patch" strip="1"/>
     </branch>
     <dependencies>
       <dep package="libunistring"/>
diff --git a/patches/0001-MinGW-doesn-t-do-signals.patch b/patches/0001-MinGW-doesn-t-do-signals.patch
new file mode 100644
index 0000000..98d692d
--- /dev/null
+++ b/patches/0001-MinGW-doesn-t-do-signals.patch
@@ -0,0 +1,34 @@
+From 491ce40b7f3127ce6b715219df0f3baa73c71fc0 Mon Sep 17 00:00:00 2001
+From: John Ralls <jralls at ceridwen.us>
+Date: Fri, 15 May 2020 14:54:33 -0700
+Subject: [PATCH] MinGW doesn't do signals.
+
+---
+ libguile/null-threads.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/libguile/null-threads.h b/libguile/null-threads.h
+--- a/libguile/null-threads.h
++++ b/libguile/null-threads.h
+@@ -82,10 +82,17 @@ scm_i_sched_yield (void)
+ 
+ /* Signals
+  */
++#ifdef __MINGW32__
++typedef unsigned int sigset_t;
++#endif
+ static inline int
+ scm_i_pthread_sigmask (int how, const sigset_t *set, sigset_t *oldset)
+ {
++#ifdef __MINGW32__
++  return 0;
++#else
+   return sigprocmask (how, set, oldset);
++#endif
+ }
+ 
+ /* Mutexes
+ 
+-- 
+2.26.0
+
diff --git a/patches/0003-AC_DEFINE-REPLACE_MKTIME.patch b/patches/0003-AC_DEFINE-REPLACE_MKTIME.patch
index 9cc5763..5bb6032 100644
--- a/patches/0003-AC_DEFINE-REPLACE_MKTIME.patch
+++ b/patches/0003-AC_DEFINE-REPLACE_MKTIME.patch
@@ -35,17 +35,6 @@ index 2efd44a22..588d4d139 100644
  
  #ifdef weak_alias
  weak_alias (mktime, timelocal)
-diff --git a/lib/timegm.c b/lib/timegm.c
-index 35bc67dc1..949f4b7ad 100644
---- a/lib/timegm.c
-+++ b/lib/timegm.c
-@@ -39,4 +39,6 @@ timegm (struct tm *tmp)
-   return __mktime_internal (tmp, __gmtime_r, &gmtime_offset);
- }
- 
-+#if ! REPLACE_MKTIME
- #include "mktime.c"
-+#endif
 diff --git a/m4/mktime.m4 b/m4/mktime.m4
 index d594ddc58..ec7299f08 100644
 --- a/m4/mktime.m4



Summary of changes:
 gnucash.modules                             |  6 ++---
 patches/0001-MinGW-doesn-t-do-signals.patch | 34 +++++++++++++++++++++++++++++
 patches/0003-AC_DEFINE-REPLACE_MKTIME.patch | 11 ----------
 3 files changed, 37 insertions(+), 14 deletions(-)
 create mode 100644 patches/0001-MinGW-doesn-t-do-signals.patch



More information about the gnucash-changes mailing list