summaryrefslogtreecommitdiff
path: root/libguile/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/gc.c')
-rw-r--r--libguile/gc.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libguile/gc.c b/libguile/gc.c
index 142fd0be9..d8b27d2f5 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -23,6 +23,8 @@
# include <config.h>
#endif
+#include "libguile/gen-scmconfig.h"
+
#include <stdio.h>
#include <errno.h>
#include <string.h>
@@ -55,7 +57,7 @@ extern unsigned long * __libc_ia64_register_backing_store_base;
#include "libguile/gc.h"
#include "libguile/dynwind.h"
-#include <gc/gc.h>
+#include "libguile/boehm-gc.h"
#ifdef GUILE_DEBUG_MALLOC
#include "libguile/debug-malloc.h"
@@ -641,6 +643,13 @@ scm_storage_prehistory ()
GC_all_interior_pointers = 0;
GC_INIT ();
+
+#ifdef SCM_I_GSC_USE_PTHREAD_THREADS
+ /* When using GC 6.8, this call is required to initialize thread-local
+ freelists (shouldn't be necessary with GC 7.0). */
+ GC_init ();
+#endif
+
GC_expand_hp (SCM_DEFAULT_INIT_HEAP_SIZE_2);
/* We only need to register a displacement for those types for which the