1 2008-08-12 Geoff Norton <gnorton@novell.com>
3 * pthread_support.c: GCC shipped with SLES9 ppc gets confused with our current
4 GC_setspecific define. Unfold the define into a static inline on all platforms
5 except ppc where it is a static leaf function.
7 2008-08-10 Zoltan Varga <vargaz@gmail.com>
9 * include/private/gc_locks.h: Add amd64 support so parallel mark works on
12 2008-08-05 Andreas Färber <andreas.faerber@web.de>
14 * autogen.sh: Suppress arguments warning for NOCONFIGURE.
16 Contributed under MIT/X11 license.
18 2008-08-03 Zoltan Varga <vargaz@gmail.com>
20 * pthread_support.c (GC_thread_exit_proc): Null out the tls key to prevent the
21 dtor function from being callled, since that would read freed memory.
23 2008-05-23 Massimiliano Mantione <massi@ximian.com>
24 * alloc.c: Moved emitting "GC_EVENT_START" and "GC_EVENT_END" events
25 from "GC_maybe_gc" to "GC_try_to_collect_inner".
27 2008-05-19 Zoltan Varga <vargaz@gmail.com>
29 * configure.in: Add two variables for passing CPPFLAGS/CFLAGS from the parent
32 2008-04-28 Kornél Pál <kornelpal@gmail.com>
34 * include/gc.h: Add GC_DllMain.
35 * win32_threads.c: Rename DllMain to GC_DllMain.
37 Contributed under MIT/X11 license.
39 2008-04-15 Jonathan Chambers <joncham@gmail.com>
40 * include/private/gcconfig.h: Backport GC7 code to support Win64.
41 * win32_threads.c: Backport GC7 code to support Win64.
43 2008-02-07 Massimiliano Mantione <massi@ximian.com>
44 * include/gc.h: (GCEventType): Added start-stop the world events.
45 * pthread_stop_world.c: (GC_stop_world and GC_start_world): hooked
46 start-stop the world events.
48 2007-11-05 Geoff Norton <gnorton@novell.com>
50 * darwin_stop_world.c: Correct the structure name on Darwin-x86 for Leopard.
52 2007-11-05 Geoff Norton <gnorton@novell.com>
54 * darwin_stop_world.c: Also push ebp when pushing all stacks on Leopard
57 2007-11-01 Geoff Norton <gnorton@novell.com>
59 * darwin_stop_world.c: Handle Leopards renaming of some structure
62 Mon Sep 24 16:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
64 * include/private/gc_priv.h: increase the default MAX_HEAP_SECTS
65 value (bug#314759, bug#324318).
67 Tue Sep 11 16:22:28 CEST 2007 Paolo Molaro <lupus@ximian.com>
69 * pthread_support.c: export GC_thread_tls.
71 2007-08-22 Martin Baulig <martin@ximian.com>
73 * pthread_stop_world.c
74 (GC_mono_debugger_add_all_threads): Removed.
75 (GC_mono_debugger_get_stack_ptr): New public function.
77 Wed Jul 4 17:46:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
79 * darwin_stop_world.c: use a larger array for GC_mach_threads
80 (it'll need to be enlarged dynamically, but it's with the world
83 2007-05-09 Jonathan Chambers <joncham@gmail.com>
85 * win32_threads.c: If SuspendThread fails, don't abort. Instead
86 remove thread from GC, as this only seems to happen when thread is
89 2007-03-29 Zoltan Varga <vargaz@gmail.com>
91 * autogen.sh: Applied patch from Priit Laes <amd@store20.com>. Fix the running
94 * ltmain.sh config.sub config.guess: Removed, libtoolize creates them now.
96 2007-03-13 Jonathan Chambers <joncham@gmail.com>
98 * include/gc.h: Fix _WIN64 typedefs.
99 * libgc.vcproj: Fix Release target and begin Win64 port.
101 2007-02-01 Geoff Norton <gnorton@customerdna.com>
103 * include/private/gc_pthread_redirects.h:
104 * include/private/gc_config_macros.h:
105 * include/private/gc_priv.h:
108 * specific.c: Support for NetBSD-CURRENT. Loosely based on NetBSD
111 2006-12-22 Robert Jordan <robertj@gmx.net>
113 * include/private/gcconfig.h, os_dep.c:
114 Add FreeBSD/amd64 support. Based on a FreeBSD Port Collection patch.
117 2006-11-19 Allan Hsu <allan@counterpop.net>
119 * libgc/darwin_stop_world.c, libgc/include/private/gc_priv.h,
120 libgc/os_dep.c: Fixes to make the GC work on OSX/Intel with XCode
121 2.4 (10.4u SDK and newer).
123 This code should work with older versions of the SDK as well.
125 Tue Oct 10 16:58:37 CEST 2006 Paolo Molaro <lupus@ximian.com>
127 * darwin_stop_world.c: patch from Allan Hsu <allan@counterpop.net>
128 to avoid using memory just after freeing it.
130 2006-08-31 Zoltan Varga <vargaz@freemail.hu>
132 * libgc.vcproj: Define GC_INSIDE_DLL on VC build too.
134 2006-08-18 Zoltan Varga <vargaz@gmail.com>
136 * Makefile.am (EXTRA_DIST): Fix make dist.
138 * libtool.m4: Removed, should not be in SVN.
140 2006-07-19 Zoltan Varga <vargaz@gmail.com>
142 * configure.in: Applied patch from Sergey Tikhonov <tsv@solvo.ru>. Beginning
145 2006-06-28 Martin Baulig <martin@ximian.com>
147 * darwin_stop_world.c, pthread_support.c: Committing a patch from
148 Allan Hsu <allan@imeem.com> to fix memory leaks; see bug #78628.
150 2006-06-26 Zoltan Varga <vargaz@gmail.com>
152 * solaris_threads.c: And another one.
154 * solaris_pthreads.c: Avoid another solaris/x86 #error.
156 2006-04-08 Zoltan Varga <vargaz@gmail.com>
158 * dyn_load.c: Avoid #error "large files are not supported by libelf" errors on solaris/x86.
160 2006-05-24 Martin Baulig <martin@ximian.com>
162 * doc/debugger-support.txt: Removed; this issue turned out to be
163 something completely different and the patch mentioned in this
164 file is already reverted.
166 2006-05-23 Zoltan Varga <vargaz@gmail.com>
168 * os_dep.c (GC_unix_get_mem): Add an assert to bail out early if the runtime is
169 run on a machine with smaller page size than HBLKSIZE.
171 2006-05-19 Martin Baulig <martin@ximian.com>
173 * include/gc.h: Don't include "libgc-mono-debugger.h".
175 * pthread_support.c, pthread_stop_world.c: Include it here.
177 2006-05-17 Martin Baulig <martin@ximian.com>
179 * pthread-support.c, pthread-stop-world.c: Put the debugger stuff
180 inside a `#if LIBGC_MONO_DEBUGGER_SUPPORTED' conditional.
182 2006-05-17 Martin Baulig <martin@ximian.com>
184 Fix a weird race condition which prevented XSP from working inside
185 the debugger - see doc/debugger-issues.txt for details.
187 * include/gc.h: Moved the "libgc-mono-debugger.h" #include down
188 after the gc_pthread_redirects.h one.
190 * include/libgc-mono-debugger.h
191 (GCThreadFunctions): Added `thread_created' and `thread_exited'.
192 (GC_mono_debugger_add_all_threads): New function prototype.
194 * pthread_stop_world.c (gc_thread_vtable): Allow the vtable and
195 any function in it be NULL; use NULL as the default vtable.
196 (GC_mono_debugger_add_all_threads): New public function.
199 (GC_delete_thread): Call `gc_thread_vtable->thread_exited()'.
200 (GC_thr_init): Call `gc_thread_vtable->thread_created()'.
202 2006-04-05 Zoltan Varga <vargaz@gmail.com>
204 * include/private/gcconfig.h (LINUX and SPARC): Applied patch from
205 David S. Miller <davem@davemloft.net>: Do not
206 use _etest and GC_SysVGetDataStart() to figure out DATASTART.
207 Instead use either SEARCH_FOR_DATA_START or __environ, based
210 2006-03-25 Zoltan Varga <vargaz@gmail.com>
212 * configure.in: Applied patch from David S. Miller <davem@davemloft.net>: Fix support for sparc/linux.
214 Mon Mar 20 18:56:21 CET 2006 Paolo Molaro <lupus@ximian.com>
216 * include/gc.h: enable pthread redirection on darwin, too.
217 * include/gc_pthread_redirects.h: completed from Bryan Berg.
219 Thu Feb 9 16:20:55 CET 2006 Paolo Molaro <lupus@ximian.com>
221 * os_dep.c, include/private/gcconfig.h, darwin_stop_world.c:
222 OSX/x86 support, mostly from Geoff Norton <gnorton@customerdna.com>.
224 Wed Feb 1 18:23:55 CET 2006 Paolo Molaro <lupus@ximian.com>
226 * pthread_support.c, *: back out Zoltan's patch since it's
228 The correct fix it to execute the cleanup from inside
229 the thread also when using the __thread var to access the
232 2006-02-01 Zoltan Varga <vargaz@gmail.com>
234 * pthread_support.c (GC_thread_deregister_foreign): New public API
235 function to deregister a foreign thread from the GC.
236 (GC_destroy_thread_local): Clean up the TLS key too.
238 Tue Jan 24 12:34:06 CET 2006 Paolo Molaro <lupus@ximian.com>
240 * *: update from upstream changes.
242 2006-01-21 Martin Baulig <martin@ximian.com>
244 * include/Makefile.am: Don't install libgc-mono-debugger.h.
246 2006-01-21 Martin Baulig <martin@ximian.com>
248 * include/libgc-mono-debugger.h: Call the conditional
249 `_IN_THE_MONO_DEBUGGER', not `IN_MONO_DEBUGGER'.
251 2006-01-11 Zoltan Varga <vargaz@gmail.com>
253 * include/private/gcconfig.h: Undef _FILE_OFFSET_BITS on sparc.
255 2006-01-03 Geoff Norton <gnorton@customerdna.com>
257 * darwin_stop_world.c: Merge a patch from Bruce Mitchener that fixes a small
260 2005-12-26 Zoltan Varga <vargaz@gmail.com>
262 * include/private/gcconfig.h: Disable PROC_VDB on solaris/x86 as it
263 doesn't seem to work.
265 2005-12-06 Todd Berman <tberman@off.net>
267 * pthread_support.c (GC_thread_register_foreign): Wrap a GC_printf1
268 inside a #ifdef DEBUG_THREADS like the others. Based on a patch from
269 Bryan Berg (bryan AT imeem DOT com).
271 2005-10-11 Zoltan Varga <vargaz@gmail.com>
273 * pthread_support.c (GC_thread_deregister_foreign): Make this return
274 void instead of void*.
276 2005-09-29 Raja R Harinath <harinath@gmail.com>
278 * configure.host: Fix syntax error.
280 2005-08-24 Zoltan Varga <vargaz@gmail.com>
282 * win32_threads.c: If GC_INSIDE_DLL is defined, define the DllMain function for automatic registration
283 of threads with the GC.
285 * configure.in: Add an option for turning GC_INSIDE_DLL on.
287 2005-08-25 Zoltan Varga <vargaz@freemail.hu>
289 * solaris_threads.c (GC_thread_register_foreign): Add dummy implementation.
291 Mon Aug 22 10:41:41 BST 2005 Paolo Molaro <lupus@ximian.com>
293 * include/private/gc_locks.h: make gcc generate correct code for swp
294 (patch by tomba@bat.org, Tomi Valkeinen).
296 2005-08-20 Zoltan Varga <vargaz@freemail.hu>
298 * include/private/gc_locks.h: Fix compilation of GC_test_and_set on IA64 with gcc-3.3.5.
300 Thu Aug 18 18:08:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
302 * include/private/gcconfig.h: use LINUX_STACKBOTTOM on ARM Linux.
304 Mon Aug 1 16:49:45 CEST 2005 Paolo Molaro <lupus@ximian.com>
306 * include/private/pthread_support.h, pthread_support.c: added
307 patch to support registering new threads at runtime (from
308 Michael Meeks <michael.meeks@novell.com>).
310 2005-07-07 Raja R Harinath <rharinath@novell.com>
312 * Makefile.am (INCLUDES): Add $(top_builddir)/.. to pick up mono's
315 Thu Jul 7 12:15:22 CEST 2005 Paolo Molaro <lupus@ximian.com>
317 * pthread_support.c: fix compilation when TLS_ALLOC is not defined.
319 Thu Jul 7 11:59:42 CEST 2005 Paolo Molaro <lupus@ximian.com>
321 * pthread_support.c, Makefile.am: make the __thread var use
322 fast access if available (and avoid dlopen issue, bug #75390).
324 2005-07-05 Ben Maurer <bmaurer@ximian.com>
326 * pthread_stop_world.c (pthread_start_world, _GC_suspend_handler):
327 Make sure that all threads have been started before releasing the
328 GC_lock. Otherwise, the thread table can be corrupt in the restart
329 handler, causing deadlocks and segfaults.
331 2005-06-22 Zoltan Varga <vargaz@freemail.hu>
333 * include/private/gcconfig.h: Fix amd64 build.
335 2005-06-21 Ben Maurer <bmaurer@ximian.com>
337 * configure.host: remove -fexceptions, messes up with nptl
340 2005-06-17 Zoltan Varga <vargaz@freemail.hu>
342 * pthread_support.c: Workaround gcc-3.3 compiler bug.
344 2005-05-26 Sebastien Pouliot <sebastien@ximian.com>
346 * libgc.vcproj: Project file for libgc.
348 2005-05-19 Zoltan Varga <vargaz@freemail.hu>
350 * configure.in: Handle i386-*-linux* as well. Fixes #74960.
352 Tue May 3 16:28:26 CEST 2005 Paolo Molaro <lupus@ximian.com>
354 * os_dep.c: remove usage of libc private symbol.
356 2005-05-02 Miguel de Icaza <miguel@novell.com>
358 * pthread_stop_world.c (GC_restart_handler, GC_suspend_handler):
359 Wrap the original routines into methods that preserve the value of
362 2005-04-18 Zoltan Varga <vargaz@freemail.hu>
364 * configure.in: Applied another freebsd patch from Bill Middleton (flashdict@gmail.com).
366 2005-04-15 Zoltan Varga <vargaz@freemail.hu>
368 * configure.in: Applied another freebsd patch from Bill Middleton (flashdict@gmail.com).
370 2005-04-11 Zoltan Varga <vargaz@freemail.hu>
372 * include/private/gcconfig.h configure.in os_dep.c dyn_load.c:
373 Applied some freebsd patch from Bill Middleton <flashdict@gmail.com>.
375 2005-04-06 Zoltan Varga <vargaz@freemail.hu>
377 * solaris_pthreads.c (GC_pthread_detach): Add locking.
379 * include/gc_pthread_redirects.h (pthread_detach): Override pthread_detach too.
381 * solaris_pthreads.c (GC_pthread_detach): Override pthread_detach too. Fixes
384 2005-03-29 Zoltan Varga <vargaz@freemail.hu>
386 * os_dep.c: Add ability to fall back to mmap-ing memory when sbrk
389 * include/private/gcconfig.h: Enable FALLBACK_TO_MMAP on amd64. Fixes
392 * config.guess config.sub ltmain.sh: Update these files with more
393 up-to-date versions. Fixes #74071.
395 2005-03-09 Zoltan Varga <vargaz@freemail.hu>
397 * solaris_threads.c (GC_thread_is_registered): Add this for solaris
400 * pthread_support.c (GC_thread_is_registered): Move this outside of
401 the #ifdef THREAD_LOCAL_ALLOC.
403 2005-03-03 Zoltan Varga <vargaz@freemail.hu>
405 * include/gc.h pthread_support.c win32_threads.: Add
406 GC_thread_is_registered API function.
408 2005-02-17 Raja R Harinath <rharinath@novell.com>
410 * acinclude.m4: Don't include distributed libtool.m4.
412 Wed Feb 16 22:30:54 CET 2005 Paolo Molaro <lupus@ximian.com>
414 * alloc.c: tune the code to collect instead of expanding
415 the heap if there are many finalizers and we reclaimed some
416 memory from cleaning the finalization queue (should fix
417 bug #71001 and #70701).
419 2005-02-07 Geoff Norton <gnorton@customerdna.com>
421 * include/private/gc_priv.h: Bump the max root sets to 1024
423 Mon Jan 24 16:39:42 CET 2005 Paolo Molaro <lupus@ximian.com>
425 * alloc.c, include/gc.h: add event notification, mostly from
426 a patch by Ben Maurer.
428 2005-01-23 Geoff Norton <gnorton@customerdna.com>
430 * os_dir.c: Change GC_task_self to be static everywhere on Darwin.
431 Allows gcc4.0 to compile.
433 Tue Jan 18 11:19:47 CET 2005 Paolo Molaro <lupus@ximian.com>
435 * pthread_stop_world.c: handle EINTR from sem_wait() call.
437 2004-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
439 * include/private/gc_priv.h: use the test glib does
442 2004-08-20 Zoltan Varga <vargaz@freemail.hu>
444 * include/private/gc_priv.h (__GNUC_PREREQ): Fix typo spotted by Ben.
446 * include/gc_local_alloc.h pthread_support.c: Add
447 GC_local_gcj_fast_malloc.
449 * include/private/gc_priv.h (EXPECT): Enable this on modern versions
452 2004-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
454 * pthread_support.c: make __thread variable static
456 * include/gc_local_alloc.c: make the other headers get
457 included before we define our own variable. This fixes
458 up an ordering problem with GCJ and thread local alloc.
460 The problem was that gc.h needed to include gc_local_alloc.h
461 before gc_gcj.h. However, when gc.h was included after
462 GC_LOCAL_ALLOC_H was #defined, it would not include
465 2004-08-16 Zoltan Varga <vargaz@freemail.hu>
467 * Makefile.am: Create a static version of libmonogc for inclusion into
470 2004-07-27 John Merryweather Cooper <john_m_cooper@yahoo.com>
472 * configure.in: Fix to properly select flags for pthreads
473 on FreeBSD 4.x (aka -STABLE) and 5.x (aka -CURRENT).
475 2004-07-01 Zoltan Varga <vargaz@freemail.hu>
477 * include/install-sh doc/install-sh: New files.
479 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
481 * include/private/gc_priv.h (SMALL_OBJ): Add Hans' fix for crashes
484 Thu Jun 24 15:39:00 CEST 2004 Paolo Molaro <lupus@ximian.com>
486 * alloc.c: use Hans' fix for bug #59557.
488 2004-06-18 Dick Porter <dick@ximian.com>
490 * darwin_stop_world.c: Make the world actually stop. This seems
491 to fix the finalizer thread signalling deadlock in 58706.
493 Sat Jun 5 19:38:20 CEST 2004 Paolo Molaro <lupus@ximian.com>
495 * alloc.c: temporary fix for bug #59557.
497 Tue May 25 13:41:08 EDT 2004 Paolo Molaro <lupus@ximian.com>
499 * darwin_stop_world.c: more thread died races fixes.
501 2004-05-21 Martin Baulig <martin@ximian.com>
503 * pthread_stop_world.c: Merged the changes from linux_threads.c.
505 * linux_threads.c: Removed, this file no longer exists in the
506 latest upstream version.
508 2004-05-20 Martin Baulig <martin@ximian.com>
510 * libgc.patch: Removed. There's no need to have this in a
511 separate file, just use CVS.
513 2004-05-20 Jackson Harper <jackson@ximian.com>
515 * Makefile.am: Remove tests from EXTRA_DIST.
517 Wed May 19 18:57:30 CEST 2004 Paolo Molaro <lupus@ximian.com>
519 * darwin_stop_world.c: deal with threads that die before they can be
520 suspended (should solce the thread_info failed aborts).
522 Wed May 19 18:42:23 CEST 2004 Paolo Molaro <lupus@ximian.com>
524 * configure.in, Makefile.am: update correctly from the libgc sources:
525 this excludes linux_threads.c from the build: Martin will have to port
526 his changes to the new code, since linux_threads.c doesn't exist
527 anymore in the upstream sources.
529 2004-05-19 Raja R Harinath <rharinath@novell.com>
531 * configure.in ($enable_embed_check): New internal option that
532 will be passed by mono's configure.
533 (THREADS): Use $with_libgc_threads, which is passed by mono's
536 2004-05-18 Martin Baulig <martin@ximian.com>
538 Importing Boehm GC 6.3 alpha 6.
540 2004-03-24 Ben Maurer <bmaurer@users.sourceforge.net>
542 * gcj_mlc.c: Do finalization.
544 This is a patch from Hans Boehm that fixes a bug where
545 GC_gcj_malloc never does finalization.
548 http://www.hpl.hp.com/hosted/linux/mail-archives/gc/2004-March/000359.html
549 http://bugzilla.ximian.com/show_bug.cgi?id=55644
553 I am checking this in at Zoltan's request.
555 2003-11-07 Zoltan Varga <vargaz@freemail.hu>
557 * autogen.sh: Fix previous patch and silence noisy GNU which.
559 * autogen.sh: Applied patch from Peter Teichman (peter@ximian.com).
560 Use 'glibtool' instead of 'libtool' on OSX.
562 2003-10-01 Pedro Martínez Juliá <yoro@wanadoo.es>
564 * Makefile.am: Change lib_LTLIBRARIES to noinst_LTLIBRARIES because
565 of libmonogc is included inside libmono and without this change it
566 breaks down and not include it.
568 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
570 * mips_sgi_mach_dep.S: Remove since it is a duplicate of .s and it
571 breaks cvs checkout under windows.
573 Wed Sep 17 17:29:11 CEST 2003 Paolo Molaro <lupus@ximian.com>
575 * configure.in: disable ALL_INTERIOR_POINTERS: managed pointers
576 are not allowed in the heap, so this should be safe and it helps
577 reducing false positives.
579 2003-08-28 Dick Porter <dick@ximian.com>
582 * aix_irix_threads.c: Applied bug fix from alpha libgc
584 2003-08-26 Martin Baulig <martin@ximian.com>
586 Imported Boehm GC 6.2.
588 2003-06-20 Martin Baulig <martin@ximian.com>
590 * include/gc.h: Fixed compiler warnings.
592 2003-06-09 Martin Baulig <martin@ximian.com>
594 * include/libgc-mono-debugger.h: New header file. This is
595 installed as <mono/private/libgc-mono-debugger.h>, but it's a
596 private header files and may only be used by the Mono Debugger.
598 * Makefile.am: Build libmonogc.la and install it. For some
599 reason, using a libtool convenience archive doesn't work here.
601 2003-06-08 Martin Baulig <martin@ximian.com>
603 * libgc-mono.pc.in: Removed.
605 * Makefile.am: Don't install anything.
607 * configure.in: We're now embedded in mono and can't be built as a
608 stand-alone module any longer.
610 2003-05-17 Martin Baulig <martin@ximian.com>
612 * libgc.patch, libgc.log: Added patch against the original version
613 and a ChangeLog entry.
615 2003-05-17 Martin Baulig <martin@ximian.com>
617 * misc.c, os_dep.c, include/private/gc_priv.h: Back to the
620 * linux_threads.c: Use the `gc_thread_vtable' internally in this
621 file instead of calling it from the header files.
623 2003-05-16 Martin Baulig <martin@ximian.com>
625 * include/gc.h (GCThreadFunctions): Removed the `pthread_*'
626 function since we don't need them here.
628 * include/gc_pthread_redirects.h: Put back the original version.
630 2003-04-08 Alp Toker <alp@atoker.com>
632 * configure.in: fix automake 1.6 compatibility without breaking
633 previous versions (AM_PROG_AS)
635 2003-03-31 Martin Baulig <martin@ximian.com>
637 * include/gc.h (GCThreadFunctions): New type.
638 (gc_thread_vtable): New global variable.
640 * include/gc_pthread_redirects.h: Use the `gc_thread_vtable'
641 vtable for the redirects instead of calling the methods directly.
642 This allows us to override them at runtime.
644 2003-03-31 Martin Baulig <martin@ximian.com>
646 * include/Makefile.am: Install gc_pthread_redirects.h.
648 * include/gc.h: `#include <gc/gc_pthread_redirects.h>', not
649 `#include "gc_pthread_redirects.h"'.
651 2003-03-31 Martin Baulig <martin@ximian.com>
653 * configure.in: Call the package `libgc-mono'.
655 * libgc-mono.pc.in: Added pkg-config files.
657 2003-03-31 Martin Baulig <martin@ximian.com>
659 This is a modified version of Boehm GC 6.1.