2010-07-27 Geoff Norton * darwin_stop_world.c: Dont track unneeded registers for amd64. 2010-06-29 Geoff Norton * include/private/gc_locks.h: Implement armv6+ variants of GC_test_and_set 2010-06-14 Geoff Norton * dyn_load.c: Fix one other place where l_addr could be null on bionic. 2010-05-31 Geoff Norton * dyn_load.c: Its possible for linkmap->l_addr to be null for the linker entry on some systems (Android/Bionic based libc's) 2010-04-23 Geoff Norton * include/private/gcconfig.h: Darwin x86-64 bit support. * darwin_stop_world.c: Ditto 2010-04-19 Jonathan Pryor * include/private/gcconfig.h: Android platforms are built atop Linux, don't use glibc, and uses `environ` instead of `__environ`. * configure.in: Use AC_CHECK_LIB() to check for pthread instead of just blindly linking to -lpthread, as Android includes pthread support within libc and doesn't provide a separate libpthread. 2010-03-09 Zoltan Varga * include/private/gc_locks.h: Fix amd64 build with newer gcc's. 2010-03-04 David S. Miller * include/private/gc_locks.h: Add SPARC implementations of GC_compare_and_exchange and GC_memory_barrier. 2010-02-22 Zoltan Varga * obj_map.c (GC_add_map_entry): Speed this up for the common case where GC_register_displacement () was never called. 2010-01-29 Geoff Norton * include/private/gcconfig.h: Don't define NO_PTHREAD_TRYLOCK on darwin-x86 Patch from Tom Philpot (tom.philpot@gmail.com) 2009-10-25 Zoltan Varga * misc.c (GC_get_suspend_signal): New API function to return the suspend signal used by libgc. 2009-09-29 Zoltan Varga * solaris_threads.c (GC_thr_daemon): Don't crash if GC_lookup_thread () returns NULL. 2009-09-25 Zoltan Varga * solaris_threads.c (GC_get_orig_stack_size): Remove the annoying 'Large stack limit' warning. 2009-07-20 Geoff Norton * darwin_stop_world.c: Fix the x86 version guards to use Apple's properly defined macros. 2009-07-02 jonas echterhoff * darwin_stop_world.c: make debugger code compile on OS X. * pthread_support.c: give mach ports to the debugger instead of pthreads, as those can be iterated over from another executable. 2009-06-22 Neale Ferguson * include/private/gc_locks.h: Fix typo in 390 version of GC_compare_and_exchange and define a null memory barrier. 2009-06-16 Geoff Norton * include/private/gcconfig.h: Disable static scanning on this platform * misc.c: Enable platform-specific disabling of static scanning 2009-06-06 Zoltan Varga * CMakeLists.txt: Fix handling of powerpc and the selection of threads. Delete commented out stuff. * CMakeLists.txt: CMake build file for libgc. 2009-05-18 Miguel de Icaza * include/private/gcconfig.h: Add support for Linux on the PS3 2009-04-28 Zoltan Varga * misc.c (GC_init): Avoid casting an lvalue. Fixes part of #498692. 2009-04-24 Kostyantyn Gushtin, Yevgen Kiruha, Serhiy Naumenko, Serhiy Stetskovych and Ian Dichkovsky * include/private/gcconfig.h: Changes to support 64-bit ABI on MIPS. Add an additional condition for a proper defining of ALIGNMENT and CPP_WORDSZ. 2009-04-10 Zoltan Varga * include/private/gc_locks.h (GC_test_and_set): Merge a change from libgc 7.1's libatomic-ops to fix the ppc build with gcc 4.4. 2009-02-23 Zoltan Varga * os_dep.c (GC_init_linux_data_start): Avoid the call to GC_find_limit () if GC_no_dls is TRUE, as it is not needed and it complicates debugging since it causes a SIGSEGV. 2009-01-18 Zoltan Varga * include/private/gcconfig.h: Applied patch from Koushik Dutta (koush@koushikdutta.com). Define SEARCH_FOR_DATA_START for android. 2008-11-18 Mark Probst * include/private/gc_locks.h (test_and_set): The PPC64 case is wrong, as it operates on 64 bit values, not on 32 bit ones as the function requires. The PPC32 case is sufficient. 2008-09-29 Geoff Norton * include/private/gcconfig.h: Make Darwin/ARM use mmap() instead of sbrk() for its allocator implementation. 2008-08-28 Geoff Norton * darwin_stop_world.c: * include/private/gcconfig.h: Add support for Darwin/ARM 2008-08-12 Geoff Norton * pthread_support.c: GCC shipped with SLES9 ppc gets confused with our current GC_setspecific define. Unfold the define into a static inline on all platforms except ppc where it is a static leaf function. 2008-08-10 Zoltan Varga * include/private/gc_locks.h: Add amd64 support so parallel mark works on amd64 too. 2008-08-05 Andreas Färber * autogen.sh: Suppress arguments warning for NOCONFIGURE. Contributed under MIT/X11 license. 2008-08-03 Zoltan Varga * pthread_support.c (GC_thread_exit_proc): Null out the tls key to prevent the dtor function from being callled, since that would read freed memory. 2008-05-23 Massimiliano Mantione * alloc.c: Moved emitting "GC_EVENT_START" and "GC_EVENT_END" events from "GC_maybe_gc" to "GC_try_to_collect_inner". 2008-05-19 Zoltan Varga * configure.in: Add two variables for passing CPPFLAGS/CFLAGS from the parent configure. 2008-04-28 Kornél Pál * include/gc.h: Add GC_DllMain. * win32_threads.c: Rename DllMain to GC_DllMain. Contributed under MIT/X11 license. 2008-04-15 Jonathan Chambers * include/private/gcconfig.h: Backport GC7 code to support Win64. * win32_threads.c: Backport GC7 code to support Win64. 2008-02-07 Massimiliano Mantione * include/gc.h: (GCEventType): Added start-stop the world events. * pthread_stop_world.c: (GC_stop_world and GC_start_world): hooked start-stop the world events. 2007-11-05 Geoff Norton * darwin_stop_world.c: Correct the structure name on Darwin-x86 for Leopard. 2007-11-05 Geoff Norton * darwin_stop_world.c: Also push ebp when pushing all stacks on Leopard and pre-Leopard. 2007-11-01 Geoff Norton * darwin_stop_world.c: Handle Leopards renaming of some structure members. Mon Sep 24 16:15:47 CEST 2007 Paolo Molaro * include/private/gc_priv.h: increase the default MAX_HEAP_SECTS value (bug#314759, bug#324318). Tue Sep 11 16:22:28 CEST 2007 Paolo Molaro * pthread_support.c: export GC_thread_tls. 2007-08-22 Martin Baulig * pthread_stop_world.c (GC_mono_debugger_add_all_threads): Removed. (GC_mono_debugger_get_stack_ptr): New public function. Wed Jul 4 17:46:19 CEST 2007 Paolo Molaro * darwin_stop_world.c: use a larger array for GC_mach_threads (it'll need to be enlarged dynamically, but it's with the world stopped, bug #81974). 2007-05-09 Jonathan Chambers * win32_threads.c: If SuspendThread fails, don't abort. Instead remove thread from GC, as this only seems to happen when thread is terminating. 2007-03-29 Zoltan Varga * autogen.sh: Applied patch from Priit Laes . Fix the running of libtoolize. * ltmain.sh config.sub config.guess: Removed, libtoolize creates them now. 2007-03-13 Jonathan Chambers * include/gc.h: Fix _WIN64 typedefs. * libgc.vcproj: Fix Release target and begin Win64 port. 2007-02-01 Geoff Norton * include/private/gc_pthread_redirects.h: * include/private/gc_config_macros.h: * include/private/gc_priv.h: * configure.in: * pthread_support.c * specific.c: Support for NetBSD-CURRENT. Loosely based on NetBSD pkgsrc patch. 2006-12-22 Robert Jordan * include/private/gcconfig.h, os_dep.c: Add FreeBSD/amd64 support. Based on a FreeBSD Port Collection patch. r=Paolo. 2006-11-19 Allan Hsu * libgc/darwin_stop_world.c, libgc/include/private/gc_priv.h, libgc/os_dep.c: Fixes to make the GC work on OSX/Intel with XCode 2.4 (10.4u SDK and newer). This code should work with older versions of the SDK as well. Tue Oct 10 16:58:37 CEST 2006 Paolo Molaro * darwin_stop_world.c: patch from Allan Hsu to avoid using memory just after freeing it. 2006-08-31 Zoltan Varga * libgc.vcproj: Define GC_INSIDE_DLL on VC build too. 2006-08-18 Zoltan Varga * Makefile.am (EXTRA_DIST): Fix make dist. * libtool.m4: Removed, should not be in SVN. 2006-07-19 Zoltan Varga * configure.in: Applied patch from Sergey Tikhonov . Beginning of alpha support. 2006-06-28 Martin Baulig * darwin_stop_world.c, pthread_support.c: Committing a patch from Allan Hsu to fix memory leaks; see bug #78628. 2006-06-26 Zoltan Varga * solaris_threads.c: And another one. * solaris_pthreads.c: Avoid another solaris/x86 #error. 2006-04-08 Zoltan Varga * dyn_load.c: Avoid #error "large files are not supported by libelf" errors on solaris/x86. 2006-05-24 Martin Baulig * doc/debugger-support.txt: Removed; this issue turned out to be something completely different and the patch mentioned in this file is already reverted. 2006-05-23 Zoltan Varga * os_dep.c (GC_unix_get_mem): Add an assert to bail out early if the runtime is run on a machine with smaller page size than HBLKSIZE. 2006-05-19 Martin Baulig * include/gc.h: Don't include "libgc-mono-debugger.h". * pthread_support.c, pthread_stop_world.c: Include it here. 2006-05-17 Martin Baulig * pthread-support.c, pthread-stop-world.c: Put the debugger stuff inside a `#if LIBGC_MONO_DEBUGGER_SUPPORTED' conditional. 2006-05-17 Martin Baulig Fix a weird race condition which prevented XSP from working inside the debugger - see doc/debugger-issues.txt for details. * include/gc.h: Moved the "libgc-mono-debugger.h" #include down after the gc_pthread_redirects.h one. * include/libgc-mono-debugger.h (GCThreadFunctions): Added `thread_created' and `thread_exited'. (GC_mono_debugger_add_all_threads): New function prototype. * pthread_stop_world.c (gc_thread_vtable): Allow the vtable and any function in it be NULL; use NULL as the default vtable. (GC_mono_debugger_add_all_threads): New public function. * pthread_support.c (GC_delete_thread): Call `gc_thread_vtable->thread_exited()'. (GC_thr_init): Call `gc_thread_vtable->thread_created()'. 2006-04-05 Zoltan Varga * include/private/gcconfig.h (LINUX and SPARC): Applied patch from David S. Miller : Do not use _etest and GC_SysVGetDataStart() to figure out DATASTART. Instead use either SEARCH_FOR_DATA_START or __environ, based upon GLIBC version. 2006-03-25 Zoltan Varga * configure.in: Applied patch from David S. Miller : Fix support for sparc/linux. Mon Mar 20 18:56:21 CET 2006 Paolo Molaro * include/gc.h: enable pthread redirection on darwin, too. * include/gc_pthread_redirects.h: completed from Bryan Berg. Thu Feb 9 16:20:55 CET 2006 Paolo Molaro * os_dep.c, include/private/gcconfig.h, darwin_stop_world.c: OSX/x86 support, mostly from Geoff Norton . Wed Feb 1 18:23:55 CET 2006 Paolo Molaro * pthread_support.c, *: back out Zoltan's patch since it's incorrect. The correct fix it to execute the cleanup from inside the thread also when using the __thread var to access the current GC_thread. 2006-02-01 Zoltan Varga * pthread_support.c (GC_thread_deregister_foreign): New public API function to deregister a foreign thread from the GC. (GC_destroy_thread_local): Clean up the TLS key too. Tue Jan 24 12:34:06 CET 2006 Paolo Molaro * *: update from upstream changes. 2006-01-21 Martin Baulig * include/Makefile.am: Don't install libgc-mono-debugger.h. 2006-01-21 Martin Baulig * include/libgc-mono-debugger.h: Call the conditional `_IN_THE_MONO_DEBUGGER', not `IN_MONO_DEBUGGER'. 2006-01-11 Zoltan Varga * include/private/gcconfig.h: Undef _FILE_OFFSET_BITS on sparc. 2006-01-03 Geoff Norton * darwin_stop_world.c: Merge a patch from Bruce Mitchener that fixes a small leak on OS X. 2005-12-26 Zoltan Varga * include/private/gcconfig.h: Disable PROC_VDB on solaris/x86 as it doesn't seem to work. 2005-12-06 Todd Berman * pthread_support.c (GC_thread_register_foreign): Wrap a GC_printf1 inside a #ifdef DEBUG_THREADS like the others. Based on a patch from Bryan Berg (bryan AT imeem DOT com). 2005-10-11 Zoltan Varga * pthread_support.c (GC_thread_deregister_foreign): Make this return void instead of void*. 2005-09-29 Raja R Harinath * configure.host: Fix syntax error. 2005-08-24 Zoltan Varga * win32_threads.c: If GC_INSIDE_DLL is defined, define the DllMain function for automatic registration of threads with the GC. * configure.in: Add an option for turning GC_INSIDE_DLL on. 2005-08-25 Zoltan Varga * solaris_threads.c (GC_thread_register_foreign): Add dummy implementation. Mon Aug 22 10:41:41 BST 2005 Paolo Molaro * include/private/gc_locks.h: make gcc generate correct code for swp (patch by tomba@bat.org, Tomi Valkeinen). 2005-08-20 Zoltan Varga * include/private/gc_locks.h: Fix compilation of GC_test_and_set on IA64 with gcc-3.3.5. Thu Aug 18 18:08:54 CEST 2005 Paolo Molaro * include/private/gcconfig.h: use LINUX_STACKBOTTOM on ARM Linux. Mon Aug 1 16:49:45 CEST 2005 Paolo Molaro * include/private/pthread_support.h, pthread_support.c: added patch to support registering new threads at runtime (from Michael Meeks ). 2005-07-07 Raja R Harinath * Makefile.am (INCLUDES): Add $(top_builddir)/.. to pick up mono's config.h. Thu Jul 7 12:15:22 CEST 2005 Paolo Molaro * pthread_support.c: fix compilation when TLS_ALLOC is not defined. Thu Jul 7 11:59:42 CEST 2005 Paolo Molaro * pthread_support.c, Makefile.am: make the __thread var use fast access if available (and avoid dlopen issue, bug #75390). 2005-07-05 Ben Maurer * pthread_stop_world.c (pthread_start_world, _GC_suspend_handler): Make sure that all threads have been started before releasing the GC_lock. Otherwise, the thread table can be corrupt in the restart handler, causing deadlocks and segfaults. 2005-06-22 Zoltan Varga * include/private/gcconfig.h: Fix amd64 build. 2005-06-21 Ben Maurer * configure.host: remove -fexceptions, messes up with nptl includes, as on fc4. 2005-06-17 Zoltan Varga * pthread_support.c: Workaround gcc-3.3 compiler bug. 2005-05-26 Sebastien Pouliot * libgc.vcproj: Project file for libgc. 2005-05-19 Zoltan Varga * configure.in: Handle i386-*-linux* as well. Fixes #74960. Tue May 3 16:28:26 CEST 2005 Paolo Molaro * os_dep.c: remove usage of libc private symbol. 2005-05-02 Miguel de Icaza * pthread_stop_world.c (GC_restart_handler, GC_suspend_handler): Wrap the original routines into methods that preserve the value of errno. Fixes #74740 2005-04-18 Zoltan Varga * configure.in: Applied another freebsd patch from Bill Middleton (flashdict@gmail.com). 2005-04-15 Zoltan Varga * configure.in: Applied another freebsd patch from Bill Middleton (flashdict@gmail.com). 2005-04-11 Zoltan Varga * include/private/gcconfig.h configure.in os_dep.c dyn_load.c: Applied some freebsd patch from Bill Middleton . 2005-04-06 Zoltan Varga * solaris_pthreads.c (GC_pthread_detach): Add locking. * include/gc_pthread_redirects.h (pthread_detach): Override pthread_detach too. * solaris_pthreads.c (GC_pthread_detach): Override pthread_detach too. Fixes #74223. 2005-03-29 Zoltan Varga * os_dep.c: Add ability to fall back to mmap-ing memory when sbrk fails. * include/private/gcconfig.h: Enable FALLBACK_TO_MMAP on amd64. Fixes #73882. * config.guess config.sub ltmain.sh: Update these files with more up-to-date versions. Fixes #74071. 2005-03-09 Zoltan Varga * solaris_threads.c (GC_thread_is_registered): Add this for solaris too. * pthread_support.c (GC_thread_is_registered): Move this outside of the #ifdef THREAD_LOCAL_ALLOC. 2005-03-03 Zoltan Varga * include/gc.h pthread_support.c win32_threads.: Add GC_thread_is_registered API function. 2005-02-17 Raja R Harinath * acinclude.m4: Don't include distributed libtool.m4. Wed Feb 16 22:30:54 CET 2005 Paolo Molaro * alloc.c: tune the code to collect instead of expanding the heap if there are many finalizers and we reclaimed some memory from cleaning the finalization queue (should fix bug #71001 and #70701). 2005-02-07 Geoff Norton * include/private/gc_priv.h: Bump the max root sets to 1024 Mon Jan 24 16:39:42 CET 2005 Paolo Molaro * alloc.c, include/gc.h: add event notification, mostly from a patch by Ben Maurer. 2005-01-23 Geoff Norton * os_dir.c: Change GC_task_self to be static everywhere on Darwin. Allows gcc4.0 to compile. Tue Jan 18 11:19:47 CET 2005 Paolo Molaro * pthread_stop_world.c: handle EINTR from sem_wait() call. 2004-08-20 Ben Maurer * include/private/gc_priv.h: use the test glib does for EXPECT. 2004-08-20 Zoltan Varga * include/private/gc_priv.h (__GNUC_PREREQ): Fix typo spotted by Ben. * include/gc_local_alloc.h pthread_support.c: Add GC_local_gcj_fast_malloc. * include/private/gc_priv.h (EXPECT): Enable this on modern versions of gcc. 2004-08-17 Ben Maurer * pthread_support.c: make __thread variable static * include/gc_local_alloc.c: make the other headers get included before we define our own variable. This fixes up an ordering problem with GCJ and thread local alloc. The problem was that gc.h needed to include gc_local_alloc.h before gc_gcj.h. However, when gc.h was included after GC_LOCAL_ALLOC_H was #defined, it would not include gc_local_alloc.h. 2004-08-16 Zoltan Varga * Makefile.am: Create a static version of libmonogc for inclusion into the mono executable. 2004-07-27 John Merryweather Cooper * configure.in: Fix to properly select flags for pthreads on FreeBSD 4.x (aka -STABLE) and 5.x (aka -CURRENT). 2004-07-01 Zoltan Varga * include/install-sh doc/install-sh: New files. 2004-06-30 Zoltan Varga * include/private/gc_priv.h (SMALL_OBJ): Add Hans' fix for crashes seen on SPARC64. Thu Jun 24 15:39:00 CEST 2004 Paolo Molaro * alloc.c: use Hans' fix for bug #59557. 2004-06-18 Dick Porter * darwin_stop_world.c: Make the world actually stop. This seems to fix the finalizer thread signalling deadlock in 58706. Sat Jun 5 19:38:20 CEST 2004 Paolo Molaro * alloc.c: temporary fix for bug #59557. Tue May 25 13:41:08 EDT 2004 Paolo Molaro * darwin_stop_world.c: more thread died races fixes. 2004-05-21 Martin Baulig * pthread_stop_world.c: Merged the changes from linux_threads.c. * linux_threads.c: Removed, this file no longer exists in the latest upstream version. 2004-05-20 Martin Baulig * libgc.patch: Removed. There's no need to have this in a separate file, just use CVS. 2004-05-20 Jackson Harper * Makefile.am: Remove tests from EXTRA_DIST. Wed May 19 18:57:30 CEST 2004 Paolo Molaro * darwin_stop_world.c: deal with threads that die before they can be suspended (should solce the thread_info failed aborts). Wed May 19 18:42:23 CEST 2004 Paolo Molaro * configure.in, Makefile.am: update correctly from the libgc sources: this excludes linux_threads.c from the build: Martin will have to port his changes to the new code, since linux_threads.c doesn't exist anymore in the upstream sources. 2004-05-19 Raja R Harinath * configure.in ($enable_embed_check): New internal option that will be passed by mono's configure. (THREADS): Use $with_libgc_threads, which is passed by mono's configure. 2004-05-18 Martin Baulig Importing Boehm GC 6.3 alpha 6. 2004-03-24 Ben Maurer * gcj_mlc.c: Do finalization. This is a patch from Hans Boehm that fixes a bug where GC_gcj_malloc never does finalization. See: http://www.hpl.hp.com/hosted/linux/mail-archives/gc/2004-March/000359.html http://bugzilla.ximian.com/show_bug.cgi?id=55644 Fixes #55644. I am checking this in at Zoltan's request. 2003-11-07 Zoltan Varga * autogen.sh: Fix previous patch and silence noisy GNU which. * autogen.sh: Applied patch from Peter Teichman (peter@ximian.com). Use 'glibtool' instead of 'libtool' on OSX. 2003-10-01 Pedro Martínez Juliá * Makefile.am: Change lib_LTLIBRARIES to noinst_LTLIBRARIES because of libmonogc is included inside libmono and without this change it breaks down and not include it. 2003-09-26 Zoltan Varga * mips_sgi_mach_dep.S: Remove since it is a duplicate of .s and it breaks cvs checkout under windows. Wed Sep 17 17:29:11 CEST 2003 Paolo Molaro * configure.in: disable ALL_INTERIOR_POINTERS: managed pointers are not allowed in the heap, so this should be safe and it helps reducing false positives. 2003-08-28 Dick Porter * pthread_support.c: * aix_irix_threads.c: Applied bug fix from alpha libgc 2003-08-26 Martin Baulig Imported Boehm GC 6.2. 2003-06-20 Martin Baulig * include/gc.h: Fixed compiler warnings. 2003-06-09 Martin Baulig * include/libgc-mono-debugger.h: New header file. This is installed as , but it's a private header files and may only be used by the Mono Debugger. * Makefile.am: Build libmonogc.la and install it. For some reason, using a libtool convenience archive doesn't work here. 2003-06-08 Martin Baulig * libgc-mono.pc.in: Removed. * Makefile.am: Don't install anything. * configure.in: We're now embedded in mono and can't be built as a stand-alone module any longer. 2003-05-17 Martin Baulig * libgc.patch, libgc.log: Added patch against the original version and a ChangeLog entry. 2003-05-17 Martin Baulig * misc.c, os_dep.c, include/private/gc_priv.h: Back to the original version. * linux_threads.c: Use the `gc_thread_vtable' internally in this file instead of calling it from the header files. 2003-05-16 Martin Baulig * include/gc.h (GCThreadFunctions): Removed the `pthread_*' function since we don't need them here. * include/gc_pthread_redirects.h: Put back the original version. 2003-04-08 Alp Toker * configure.in: fix automake 1.6 compatibility without breaking previous versions (AM_PROG_AS) 2003-03-31 Martin Baulig * include/gc.h (GCThreadFunctions): New type. (gc_thread_vtable): New global variable. * include/gc_pthread_redirects.h: Use the `gc_thread_vtable' vtable for the redirects instead of calling the methods directly. This allows us to override them at runtime. 2003-03-31 Martin Baulig * include/Makefile.am: Install gc_pthread_redirects.h. * include/gc.h: `#include ', not `#include "gc_pthread_redirects.h"'. 2003-03-31 Martin Baulig * configure.in: Call the package `libgc-mono'. * libgc-mono.pc.in: Added pkg-config files. 2003-03-31 Martin Baulig This is a modified version of Boehm GC 6.1.