File gc-7.2alpha6-gcinit.patch of Package mingw64-gc
diff -ur gc-7.2alpha3/malloc.c gc-7.2alpha3/malloc.c
--- gc-7.2alpha3/malloc.c 2009-10-22 19:52:36.000000000 +0200
+++ gc-7.2alpha3/malloc.c 2009-11-13 17:31:24.000000000 +0100
@@ -239,6 +239,9 @@
size_t lg;
DCL_LOCK_STATE;
+ if (!GC_is_initialized)
+ GC_init();
+
if(SMALL_OBJ(lb)) {
lg = GC_size_map[lb];
opp = (void **)&(GC_objfreelist[lg]);
Only in gc-7.2alpha3: malloc.c.orig
diff -ur gc-7.2alpha3/thread_local_alloc.c gc-7.2alpha3/thread_local_alloc.c
--- gc-7.2alpha3/thread_local_alloc.c 2009-10-22 19:52:36.000000000 +0200
+++ gc-7.2alpha3/thread_local_alloc.c 2009-11-13 17:31:24.000000000 +0100
@@ -137,6 +137,9 @@
void *result;
void **tiny_fl;
+ if (!GC_is_initialized)
+ GC_init();
+
# if !defined(USE_PTHREAD_SPECIFIC) && !defined(USE_WIN32_SPECIFIC)
GC_key_t k = GC_thread_key;
if (EXPECT(0 == k, FALSE)) {
Only in gc-7.2alpha3: thread_local_alloc.c.orig