diff --git a/groups/231.native_packages_etc.group b/groups/231.native_packages_etc.group
index 3f3a665..79f7768 100644
--- a/groups/231.native_packages_etc.group
+++ b/groups/231.native_packages_etc.group
@@ -32,6 +32,7 @@ zstd")";
 : ${PKG_APR_UTIL_MAKEFLAGS_BUILD:="-j1"};
 : ${PKG_BDWGC_DEPENDS:="libatomic_ops"};
 : ${PKG_BDWGC_URLS_GIT:="bdwgc=https://github.com/ivmai/bdwgc@master"};
+: ${PKG_BDWGC_CONFIGURE_ARGS_EXTRA:="--enable-threads=posix --enable-parallel-mark --enable-handle-fork"};
 : ${PKG_BMAKE_URLS_GIT:="bmake=https://github.com/arichardson/bmake@master"};
 : ${PKG_BMAKE_CONFIGURE_ARGS="-C --host=${DEFAULT_TARGET} --prefix=/usr --target=${DEFAULT_TARGET}"};
 : ${PKG_BMAKE_ENV_VARS_EXTRA:="BMAKE=${PREFIX}/bin/bmake"};
diff --git a/patches/bdwgc_pre.local.patch b/patches/bdwgc_pre.local.patch
index 3918989..ba43365 100644
--- a/patches/bdwgc_pre.local.patch
+++ b/patches/bdwgc_pre.local.patch
@@ -1,13 +1,32 @@
---- bdwgc/configure.ac.orig	2017-06-15 16:27:37.964531977 +0000
-+++ bdwgc/configure.ac	2017-06-15 18:17:47.369988647 +0000
-@@ -208,6 +208,10 @@
-         THREADDLLIBS="-lpthread -lrt"
-         # HPUX needs REENTRANT for the _r calls.
+diff -ru bdwgc.orig/configure.ac bdwgc/configure.ac
+--- bdwgc.orig/configure.ac	2020-07-05 12:09:58.042430329 +0200
++++ bdwgc/configure.ac	2020-07-06 19:34:20.918143543 +0200
+@@ -194,7 +194,7 @@
+       *-*-aix* | *-*-android* | *-*-cygwin* | *-*-darwin* | *-*-dragonfly* | \
+       *-*-freebsd* | *-*-haiku* | *-*-hpux11* | *-*-irix* | \
+       *-*-kfreebsd*-gnu | *-*-gnu* | *-*-*linux* | *-*-msys* | *-*-nacl* | \
+-      *-*-netbsd* | *-*-openbsd* | *-*-osf* | *-*-solaris*)
++      *-*-netbsd* | *-*-openbsd* | *-*-osf* | *-*-solaris* | *-*-midipix*)
+         AC_DEFINE(GC_THREADS)
+         AC_DEFINE([_REENTRANT], [1],
+                   [Required define if using POSIX threads.])
+@@ -240,6 +240,10 @@
+         THREADDLLIBS=""
+         win32_threads=true
          ;;
-+     *-*-midipix*)
-+        AC_DEFINE(GC_THREADS)
-+        AC_DEFINE(_REENTRANT)
++      *-*-midipix*)
++        # libpthread is part of libc
++        THREADDLLIBS=""
 +        ;;
-       *-*-openbsd*)
-         AM_CFLAGS="$AM_CFLAGS -pthread"
-         THREADDLLIBS=-pthread
+       *-*-mingw*)
+         AC_DEFINE(GC_WIN32_PTHREADS)
+         # Using pthreads-win32 (or other non-Cygwin pthreads) library.
+@@ -791,7 +795,7 @@
+        [AC_TRY_COMPILE([
+ #ifdef __CYGWIN__
+ #define _GNU_SOURCE 1
+-#elif defined(__linux__) || defined(__GLIBC__) || defined(__GNU__)
++#elif defined(__linux__) || defined(__GLIBC__) || defined(__GNU__) || defined(__midipix__)
+ #define _GNU_SOURCE 1
+ #endif
+ #include <pthread.h>],