summaryrefslogtreecommitdiff
blob: a1069b214b4b15eda09b7dc2391286b20739fded (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
diff -r -U1 ecl-13.5.1.orig/src/aclocal.m4 ecl-13.5.1/src/aclocal.m4
--- ecl-13.5.1.orig/src/aclocal.m4	2013-05-28 03:37:36.000000000 +0700
+++ ecl-13.5.1/src/aclocal.m4	2014-01-12 00:34:36.663129950 +0700
@@ -942,2 +942,6 @@
  fi
+ if test "${system_boehm}" = "yes"; then
+   AC_CHECK_LIB( [gc], [GC_set_start_callback],
+                 [AC_DEFINE(HAVE_GC_SET_START_CALLBACK)], [] )
+ fi
  AC_MSG_CHECKING( [whether we can use the existing Boehm-Weiser library] )
diff -r -U1 ecl-13.5.1.orig/src/c/alloc_2.d ecl-13.5.1/src/c/alloc_2.d
--- ecl-13.5.1.orig/src/c/alloc_2.d	2013-05-28 03:37:36.000000000 +0700
+++ ecl-13.5.1/src/c/alloc_2.d	2014-01-12 00:43:44.177106924 +0700
@@ -33,2 +33,9 @@
 
+static void (*GC_old_start_callback)(void) = NULL;
+#ifdef HAVE_GC_START_CALLBACK
+extern void GC_set_start_callback(void *);
+extern void *GC_get_start_callback(void *);
+#else
+extern void *GC_start_call_back(void);
+#endif
 static void gather_statistics();
@@ -752,3 +759,2 @@
 extern void (*GC_push_other_roots)();
-extern void (*GC_start_call_back)();
 static void (*old_GC_push_other_roots)();
@@ -1092,3 +1098,9 @@
 	GC_push_other_roots = stacks_scanner;
+#ifdef HAVE_GC_SET_START_CALLBACK
+	GC_old_start_callback = GC_get_start_callback();
+	GC_set_start_callback(gather_statistics);
+#else
+	GC_old_start_callback = GC_start_call_back;
 	GC_start_call_back = (void (*)())gather_statistics;
+#endif
 	GC_java_finalization = 1;
@@ -1200,3 +1212,3 @@
  */
-#if 1 /*GBC_BOEHM == 0*/
+#if GBC_BOEHM == 0
 extern int GC_print_stats;
@@ -1279,2 +1291,4 @@
 	}
+	if (GC_old_start_callback)
+		GC_old_start_callback();
 }
Только в ecl-13.5.1/src/c: alloc_2.d.orig
diff -r -U1 ecl-13.5.1.orig/src/h/config.h.in ecl-13.5.1/src/h/config.h.in
--- ecl-13.5.1.orig/src/h/config.h.in	2013-05-28 03:37:36.000000000 +0700
+++ ecl-13.5.1/src/h/config.h.in	2014-01-12 00:34:36.663129950 +0700
@@ -310,2 +310,5 @@
 
+/* GC_set_start_callback						*/
+#define HAVE_GC_SET_START_CALLBACK
+
 /*