boehm-gc: revert all CACAO-specific modifications; this is now an exact copy of the...
[cacao.git] / src / mm / boehm-gc / ChangeLog
index c2238ab89f97cf67efa1bec09bda2e1fc3741924..091408d75cb5361e2b412028e6c1911c7d1cbb51 100644 (file)
@@ -1,3 +1,994 @@
+2009-09-03  Hans Boehm <Hans.Boehm@hp.com> (really Loren J. Rittle)
+
+       * dyn_load.c (HAVE_DL_ITERATE_PHDR): Break definition from use.
+       Define for FreeBSD 7.0+.
+       
+2009-09-02  Hans Boehm <Hans.Boehm@hp.com> (with help from Victor Ivrii and
+                                           others)     
+
+       * mach_dep.c: Don't include ucontext.h with NO_GETCONTEXT.
+
+2009-08-19  Hans Boehm <Hans.Boehm@hp.com>
+
+       * include/gc_gcj.h (GC_init_gcj_malloc): Improve descriptive
+       comment.
+
+2009-08-11  Hans Boehm <Hans.Boehm@hp.com>
+       (Replacement for Ivan Maidanski's diff99_cvs.  Hopefully fixes
+       the same bugs, and then some.)
+
+       * allchblk.c (GC_merge_unmapped): Don't assume that adjacent
+       free blocks have different mapping status.  Correctly handle gap
+       between blocks.
+       (GC_split_block): Remove dead code setting hb_flags.  Add comment.
+       (GC_allochblk): Split blocks also in generational-only mode.
+       * os_dep.c (GC_unmap_gap): Dont really use munmap.
+
+2009-08-08  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       (Mistakenly omitted from last check-in)
+       * include/private/gc_priv.h (GC_unmapped_bytes): Define as 0 for
+       not USE_MUNMAP case.
+
+2009-08-07  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       diff111 (supersedes diff101_cvs which, in turn, resembles diff52, diff75, diff83 partly)
+
+       * Makefile.direct (MARK_BIT_PER_OBJ, PRINT_BLACK_LIST,
+       USE_PROC_FOR_LIBRARIES): Fix typo in the comments.
+       * Makefile.direct (USE_MMAP, USE_MUNMAP, THREAD_LOCAL_ALLOC,
+       PARALLEL_MARK, STATIC): Update the comments.
+       * include/private/gcconfig.h (GC_PREFER_MPROTECT_VDB): New macro
+       recognized (only if MPROTECT_VDB).
+       * Makefile.direct (DONT_USE_USER32_DLL, GC_PREFER_MPROTECT_VDB):
+       Add the comments for.
+       * os_dep.c (detect_GetWriteWatch): Recognize "GC_USE_GETWRITEWATCH"
+       environment variable (only if MPROTECT_VDB, if the variable is
+       unset when GC_PREFER_MPROTECT_VDB macro controls the strategy).
+       * doc/README.environment (GC_USE_GETWRITEWATCH): New variable.
+       * include/private/gcconfig.h (MPROTECT_VDB): Add FIXME for
+       USE_MUNMAP and PARALLEL_MARK cases (to relax the conditions in
+       the future).
+       * misc.c (GC_get_heap_size, GC_get_free_bytes): Ignore the memory
+       space returned to OS (GC_unmapped_bytes).
+       * include/gc.h (GC_get_heap_size, GC_get_free_bytes): Update the
+       comments.
+       * misc.c (GC_get_unmapped_bytes): New API function.
+       * include/gc.h (GC_get_unmapped_bytes): New API prototype.
+       * os_dep.c (GC_dirty_init): Move "ifdef GWW_VDB" block out of
+       "ifdef MSWIN32" one (for Cygwin).
+
+2009-08-01  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       diff100_cvs (diff51 and diff55, partly)
+
+       * pthread_support.c (GC_allow_register_threads): New API function.
+        * win32_threads.c (GC_allow_register_threads): Ditto.
+        * include/gc.h (GC_allow_register_threads): New API prototype.
+        * include/gc.h (GC_register_my_thread, GC_unregister_my_thread):
+        Update the comments.
+        * pthread_support.c (GC_register_my_thread): Check the collector
+        is in the multi-threaded mode.
+        * win32_threads.c (GC_register_my_thread): Ditto.
+       
+2009-07-10  Hans Boehm <Hans.Boehm@hp.com>
+
+       * finalize.c (GC_finalize_all): Always call GC_invoke_finalizers
+       instead, following Ivan's original patch.
+
+2009-06-20  Hans Boehm <Hans.Boehm@hp.com>
+       
+       * allchblk.c (GC_allochblk_nth): Add assertion.
+       * checksums.c: Add GC_record_fault, GC_was_faulted,
+       CC_n_faulted_dirty_errors.
+       (GC_check_dirty): Remove register declarations, print
+       dirty bit errors on faulted pages.
+       * os_dep.c (GC_write_fault_handler): Call GC_record_fault().
+       * os_dep.c (GC_remove_protection): Compute index correctly.
+
+2009-06-12  Hans Boehm <Hans.Boehm@hp.com>
+       
+       * include/gc_version.h, configure.ac, doc/README:
+       Change to version 7.2alpha3.
+       * configure: Regenerate.
+
+[7.2alpha2]
+
+2009-06-12  Hans Boehm <Hans.Boehm@hp.com>
+       
+       * include/gc_version.h, configure.ac, doc/README:
+       Change to version 7.2alpha2.
+       * configure: Regenerate.
+
+2009-06-12  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Ivan Maidanski)
+       diff98_cvs(resembling diff3, diff27, diff59, diff61, diff66,
+       diff73 partly)
+
+        * dbg_mlc.c (GC_print_smashed_obj): Convert a group of printf()
+        calls into a single one (for output atomicity).
+        * typd_mlc.c (GC_calloc_explicitly_typed): Don't declare and use
+        GC_finalization_failures variable; check the result of
+        GC_general_register_disappearing_link() (for lack of memory)
+        instead.
+        * finalize.c (GC_finalization_failures): Remove unused global
+        variable.
+        * finalize.c (GC_general_register_disappearing_link,
+        GC_general_register_disappearing_link): Don't update the value of
+        GC_finalization_failures (since unused).
+        * include/private/gc_pmark.h (PUSH_ONE_CHECKED_STACK,
+        GC_PUSH_ONE_STACK, GC_PUSH_ONE_HEAP): The first parameter is of
+        word type now (as FIXUP_POINTER requires numeric argument).
+        * finalize.c (GC_ignore_self_finalize_mark_proc): GC_PUSH_ONE_HEAP
+        requires the first parameter of word type.
+        * mark.c (PUSH_GRANULE): Ditto.
+        * mark.c (GC_push_one, GC_push_all_eager): Ditto (for
+        GC_PUSH_ONE_STACK).
+        * finalize.c (GC_finalize_all): Call GC_invoke_finalizers() or
+       GC_finalizer_notifier directly, instead
+        of GC_INVOKE_FINALIZERS() to prevent infinite looping.
+       * include/javaxfc.h: Clarify GC_finalize_all comment.
+        * gcj_mlc.c: Include gc_pmark.h before "ifdef GC_GCJ_SUPPORT" (not
+        after) for configuration information.
+        * gcj_mlc.c (GC_gcj_malloc_ignore_off_page): Add comment.
+        * gcj_mlc.c (GC_gcj_malloc_ignore_off_page): Check "op" local
+        variable for NULL before dereferencing it, return GC_oom_fn() in
+        this case.
+        * typd_mlc.c (GC_malloc_explicitly_typed,
+        GC_malloc_explicitly_typed_ignore_off_page): Transform the code to
+        suppress compiler warning (for uninitialized "lg" variable).
+
+2009-06-12  Hans Boehm <Hans.Boehm@hp.com>
+
+       * win32_threads.c (GC_unregister_my_thread): add false assertion
+       in unreachable code.
+
+2009-06-12  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       diff97_cvs (resembling diff43, diff51, diff67, diff76, diff83 partly)
+
+        * pthread_support.c (GC_inner_start_routine): Don't release the
+        GC lock between GC_register_my_thread_inner() and
+        GC_init_thread_local() calls (post the "registered" even after
+        calling GC_init_thread_local()).
+        * win32_threads.c (GC_register_my_thread, GC_unregister_my_thread):
+        Use GC_lookup_thread_inner() instead of GC_lookup_thread() and
+        acquire the GC lock only once.
+        * win32_threads.c (GC_thr_init): Call GC_register_my_thread_inner()
+        directly instead of GC_register_my_thread() since I_HOLD_LOCK
+        and our (main) thread is not registered yet (add assertion for it).
+        * win32_threads.c (GC_init_parallel): Call GC_lookup_thread_inner()
+        directly instead of GC_lookup_thread() (since I_HOLD_LOCK).
+        * win32_threads.c (GC_lookup_thread): Remove unused function.
+        * win32_threads.c: Remove "#error GC_DLL untested with Cygwin".
+        * win32_threads.c (GC_win32_dll_threads): Define as FALSE macro
+        also if THREAD_LOCAL_ALLOC or GC_PTHREADS.
+        * win32_threads.c (GC_use_DllMain): Call ABORT also if GC_PTHREADS
+        (for Cygwin).
+        * win32_threads.c (GC_push_stack_for): Add parentheses around "&&"
+        (inside GC_ASSERT) to prevent compiler warning.
+        * win32_threads.c (GC_push_all_stacks): Remove FIXME for
+        PARALLEL_MARK.
+        * win32_threads.c (MAX_MARKERS, GC_markers): Move the definitions
+        to a place before GC_get_next_stack().
+        * win32_threads.c (marker_sp, marker_bsp): New static arrays (same
+        as in pthread_support.c).
+        * win32_threads.c (marker_last_stack_min): New static arrays (the
+        same semantics as for last_stack_min of GC_Thread_Rep).
+        * win32_threads.c (GC_get_next_stack): Handle marker threads.
+        * win32_threads.c (GC_mark_thread): Save the current stack pointer
+        to marker_[b]sp.
+        * win32_threads.c (start_mark_threads): Initialize
+        marker_last_stack_min elements (to "unset" value).
+
+2009-06-12  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       (diff96_cvs, partly from diff45 and diff75)
+
+        * misc.c (GC_set_oom_fn, GC_set_all_interior_pointers,
+        GC_set_finalize_on_demand, GC_set_java_finalization,
+        GC_set_finalizer_notifier, GC_set_dont_expand, GC_set_full_freq,
+        GC_set_no_dls, GC_set_free_space_divisor, GC_set_max_retries,
+        GC_set_dont_precollect, GC_set_time_limit, GC_set_warn_proc):
+        Change return type to void (these API functions no longer return
+        the old value).
+        * include/gc.h: Ditto (for prototypes).
+        * tests/test.c (main, WinMain, test): Remove explicit cast to void
+        for GC_set_warn_proc().
+        * misc.c (GC_get_oom_fn, GC_get_all_interior_pointers,
+        GC_get_finalize_on_demand, GC_get_java_finalization,
+        GC_get_finalizer_notifier, GC_get_dont_expand, GC_get_full_freq,
+        GC_get_no_dls, GC_get_free_space_divisor, GC_get_max_retries,
+        GC_get_dont_precollect, GC_get_time_limit, GC_get_warn_proc): New
+        API functions (to get the current value of the corresponding R/W
+        public variables).
+        * include/gc.h: Ditto (for prototypes).
+        * include/gc.h (GC_set_warn_proc, GC_set_free_space_divisor):
+        Update the comment.
+        * misc.c (GC_ignore_warn_proc): New API call-back function.
+        * include/gc.h (GC_ignore_warn_proc): Ditto (for the prototype).
+        * misc.c (GC_set_find_leak, GC_get_find_leak, GC_set_non_gc_bytes,
+        GC_get_non_gc_bytes): New API setter and getter functions (for the
+        public GC_find_leak and GC_non_gc_bytes variables, respectively).
+        * include/gc.h: Ditto (for prototypes).
+        * include/gc.h (GC_memalign): Add proto to GC API.
+        * mallocx.c (GC_memalign): Use GC_API, GC_CALL for the definition.
+        * tests/test.c (run_one_test): Test GC_memalign() on Win32 too,
+        remove GC_memalign() proto.
+        * misc.c (GC_write): Use multi-byte (A) variants of Win32
+        GetModuleFileName() and CreateFile().
+       * tests/test.c (main): Replace K&R-style function definition with the
+       ANSI C one.
+
+2009-06-12  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski and George Talbot)
+       (diff95_cvs)
+       * include/private/gcconfig.h (PLATFORM_ANDROID): New macro
+        recognized (for Linux on ARM32 without glibc).
+        * include/private/gcconfig.h (STRTOULL): Define for all targets
+        (define as "strtoul" for most targets except for LLP64/Win64).
+        * misc.c (GC_init_inner): Use STRTOULL instead of atoi/atol()
+        (cast the result to word type) to decode values of "GC_TRACE",
+        "GC_INITIAL_HEAP_SIZE", "GC_MAXIMUM_HEAP_SIZE" environment vars.
+
+2009-06-12  Hans Boehm <Hans.Boehm@hp.com> (Really mostly George Talbot)
+       * include/gc_allocator.h: Add gc_allocator_ignore_off_page.
+       * tests/test_cpp.cc: Add call to gc_allocator_ignore_off_page.
+
+2009-06-11  Hans Boehm <Hans.Boehm@hp.com>
+       * win32_threads.c (GC_release_mark_lock): Correct misspelling of
+       AO_load in assertion.
+
+2009-06-11  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Ivan Maidanski)
+       (diff93_cvs: resembling diff27, diff30, diff43, diff44, diff66,
+       diff76, diff79, diff83 partly)
+
+        * win32_threads.c (MAX_THREADS): Define as 1 if GC_win32_dll_threads
+        is defined as FALSE (otherwise the size of dll_thread_table is near
+        200 KiB for 32-bit).
+        * win32_threads.c (GC_use_DllMain): Optimize for THREAD_LOCAL_ALLOC.
+        * win32_threads.c (GC_Thread_Rep): Add backing_store_end and
+        backing_store_ptr fields for IA64 support.
+        * win32_threads.c (GC_register_my_thread_inner): Set
+        backing_store_end field to reg_base value for IA64 (same as in
+        pthread_support.c).
+        * win32_threads.c (SET_PTHREAD_MAP_CACHE): Put parentheses in the
+        "right" places, remove ';'.
+        * win32_threads.c (GC_fault_handler_lock): Declare only
+        if MPROTECT_VDB (and not WinCE).
+        * win32_threads.c (GC_suspend): Acquire and release
+        GC_fault_handler_lock only if MPROTECT_VDB (and not WinCE).
+        * win32_threads.c (GC_suspend): Define as STATIC.
+        * win32_threads.c (GC_push_stack_for): Fix WARN() format specifier
+        (should be word-complient, "%p" is used w/o "0x"), don't cast sp.
+        * win32_threads.c (GC_push_all_stacks): Convert a group of printf()
+        calls into a single one (for output atomicity).
+        * win32_threads.c (GC_get_next_stack): Unprotect thread descriptor
+        before altering its last_stack_min ("thread" variable is added).
+        * win32_threads.c (GC_get_next_stack): Remove unnecessary checks for
+        "s" is non-NULL. 
+        * win32_threads.c (GC_get_next_stack): Don't call GC_may_be_in_stack
+        if WinCE.
+        * win32_threads.c (GC_get_next_stack): Pass current_min value to
+        GC_get_stack_min as-is (without -1).
+        * win32_threads.c (GC_wait_marker): Remove FIXME and use "release"
+        version of AO_fetch_and_sub1().
+        * win32_threads.c (GC_win32_start_inner, GC_win32_start): convert int
+        to pointer (and vice verse) thru word type to suppress warnings.
+       * win32_threads.c (GC_mark_mutex_waitcnt): Fix comment, always
+       access atomically.
+       * misc.c: Change GC_THREADS tests back to THREADS.
+
+
+2009-06-11  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       (diff92_cvs: resembling diff20, diff27, diff34, diff38, diff43, diff45,
+       diff46, diff56, diff60, diff62, diff74, diff75, diff81 partly)
+
+        * allchblk.c (GC_print_hblkfreelist, GC_dump_regions): Convert
+        a group of printf() calls into a single one (for output atomicity).
+        * include/gc.h (GC_set_all_interior_pointers, GC_set_full_freq,
+        GC_set_time_limit): New prototypes.
+        * misc.c (GC_set_all_interior_pointers, GC_set_full_freq,
+        GC_set_time_limit): New public setter/getter functions.
+        * include/gc.h: Fix (and remove outdated) comments for thread-local
+        allocation.
+        * include/gc.h: Fix typos in comments.
+        * misc.c (GC_init_inner, GC_printf): Ditto.
+        * include/gc.h (GC_unregister_disappearing_link): Refine comment.
+        * include/gc.h (GC_stack_base): Recognize _M_IA64 macro.
+        * misc.c (GC_stack_last_cleared, GC_min_sp, GC_high_water,
+        GC_bytes_allocd_at_reset, DEGRADE_RATE): Define only if THREADS.
+        * misc.c (GC_stack_last_cleared, GC_min_sp, GC_high_water,
+        GC_bytes_allocd_at_reset): Define as STATIC.
+        * misc.c (GC_get_heap_size, GC_get_free_bytes,
+        GC_get_bytes_since_gc, GC_get_total_bytes): Acquire the GC lock to
+        avoid data races.
+        * misc.c (GC_write_cs): Define only if THREADS (Win32/WinCE only).
+        * misc.c (GC_init_inner): Initialize GC_write_cs only if THREADS.
+        * misc.c (GC_init_inner): Use GC_INITIAL_HEAP_SIZE (if available) to
+        set the default initial value of initial_heap_sz.
+        * misc.c (GC_deinit): Destroy GC_write_cs only if THREADS.
+        * misc.c (GC_init_inner): Fix WARN() format specifier (should be
+        word-complient, "%p" is used w/o "0x").
+        * misc.c (GC_init_inner): Don't recognize "GC_PAUSE_TIME_TARGET"
+        environment variable if SMALL_CONFIG.
+        * misc.c (GC_init_inner): Recognize "GC_FULL_FREQUENCY" environment
+        variable to set initial GC_full_freq value (if not SMALL_CONFIG).
+        * doc/README.environment (GC_FULL_FREQUENCY): Add information.
+        * doc/README.environment (GC_MARKERS): Refine information.
+        * misc.c (GC_init_inner): Change GC_ASSERT to GC_STATIC_ASSERT where
+        possible.
+        * misc.c (IF_NEED_TO_LOCK): New macro (instead of GC_need_to_lock).
+        * misc.c (GC_write): Use IF_NEED_TO_LOCK for handling GC_write_cs.
+        * misc.c (GC_abort): Don't define if SMALL_CONFIG.
+        * misc.c (GC_abort): Directly use WRITE() instead of GC_err_printf()
+        (to prevent possible infinite recursion).
+
+2009-06-09  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       diff90_cvs (resembling diff28, diff30, diff32, diff34, diff47,
+       diff49, diff60, diff62, diff66, diff67, diff68, diff72 partly)
+
+        * finalize.c (finalization_mark_proc): Replace K&R-style declaration
+        with ANSI C one.
+        * finalize.c (GC_grow_table, GC_register_finalizer_inner,
+        GC_enqueue_all_finalizers): Remove outdated comments about disabling
+        signals.
+        * finalize.c (GC_general_register_disappearing_link): Fix assertion
+        to catch NULL "obj" value.
+        * finalize.c (GC_unregister_disappearing_link): Check "link"
+        alignment before gaining the lock.
+        * finalize.c (GC_finalize): Refine comment.
+        * finalize.c (GC_finalize): Fix WARN() format specifier (should be
+        word-complient, "%p" is used w/o "0x").
+        * finalize.c (GC_invoke_finalizers): Initialize "bytes_freed_before"
+        variable (to 0) to suppress compiler warning.
+        * include/gc_gcj.h (MARK_DESCR_OFFSET): Move to private/gc_pmark.h.
+        * include/gc_gcj.h: add "extern C" header and tail.
+        * include/private/gc_pmark.h: Remove GC_do_parallel_mark(),
+        GC_help_wanted, GC_helper_count, GC_active_count declarations (move
+        the comments to the place where these symbols are defined in mark.c).
+        * mark.c: Add STATIC GC_do_parallel_mark() declaration (for use by
+        GC_mark_some_inner, if PARALLEL_MARK only).
+        * mark.c (GC_mark_some_inner, GC_help_wanted, GC_helper_count,
+        GC_active_count, GC_do_parallel_mark): Define as STATIC.
+        * pthread_support.c (GC_mark_thread): Ditto.
+        * typd_mlc.c (GC_explicit_typing_initialized, GC_explicit_kind,
+        GC_array_kind, GC_ext_descriptors, GC_ed_size, GC_avail_descr,
+        GC_typed_mark_proc_index, GC_array_mark_proc_index, GC_eobjfreelist,
+        GC_arobjfreelist): Ditto.
+        * include/private/gc_pmark.h (PUSH_CONTENTS_HDR): Change GC_ASSERT
+        for HBLKSIZE to GC_STATIC_ASSERT.
+        * mark.c (GC_noop): Define for Borland C the same as for Watcom.
+        * mark.c (GC_noop, GC_mark_and_push): Add ARGSUSED tag.
+        * pthread_support.c (GC_do_blocking_inner): Ditto.
+        * mark.c (GC_mark_from): Initialize "limit" (to 0) in the default
+        switch branch to suppress compiler warning.
+        * mark.c (GC_return_mark_stack): Append new-line to printf message.
+        * mark.c: Remove unused GC_true_func(), GC_PUSH_ALL().
+        * pthread_support.c (GC_mark_thread): Add dummy "return 0" to
+        suppress compiler warning.
+        * pthread_support.c (start_mark_threads): Move the code limiting
+        "GC_markers" value (and printing a warning) to GC_thr_init().
+        * pthread_support.c (GC_thr_init): Silently limit "GC_markers" value
+        if based on the number of CPUs.
+        * pthread_support.c (GC_thr_init): Treat incorrect "GC_markers"
+        values as one.
+       * pthread_support.c (GC_register_my_thread_inner): Add a check for
+       "stack_end" is non-NULL (the same as in win32_threads.c).
+       * pthread_support.c (pthread_create): Call GC_oom_fn before giving up
+       with ENOMEM.
+       * thread_local_alloc.c (return_single_freelist): Convert "for" loop
+       to "while" one to suppress "possible extraneous ';'" warning.
+
+2009-06-08  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski
+       and Zoltan Varga)
+        * darwin_stop_world.c (GC_push_all_stacks): Recognize ARM32.
+        * include/private/gc_priv.h (GC_THREAD_STATE_T): Define for ARM32
+        (Darwin only).
+        * include/private/gcconfig.h: Add machine-specific part for DARWIN.
+        * include/private/gcconfig.h (ARM32): Define config parameters for
+        DARWIN (iPhone).
+
+2009-06-08  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       (diff91_cvs: resembling diff3, diff27, diff33, diff45, diff47, diff49,
+       diff60, diff67, diff68 partly)
+       * alloc.c (GC_FULL_FREQ, GC_DONT_EXPAND, GC_FREE_SPACE_DIVISOR,
+        GC_TIME_LIMIT): New macros (used to control the default initial
+        values of GC_full_freq variable, GC_dont_expand,
+        GC_free_space_divisor, GC_time_limit respectively).
+        * include/private/gc_priv.h (TIME_LIMIT): Remove macro (replaced
+        with GC_TIME_LIMIT in alloc.c).
+        * alloc.c (GC_need_full_gc, GC_stopped_mark, GC_finish_collection):
+        Define as STATIC.
+        * mark_rts.c (GC_push_current_stack, GC_push_gc_structures): Ditto.
+        * include/private/gc_priv.h (GC_stopped_mark, GC_finish_collection):
+        Move the prototypes to alloc.c, make STATIC.
+        * include/private/gc_priv.h (GC_push_current_stack,
+        GC_push_gc_structures, GC_push_regs_and_stack): Remove prototypes
+        (move the comments to the places where these functions are defined).
+        * mach_dep.c (GC_push_regs_and_stack): Move to mark_rts.c and define
+        as STATIC.
+        * alloc.c (GC_timeout_stop_func, GC_stopped_mark,
+        GC_print_heap_sects): Convert a group of printf() calls into
+        a single one (for output atomicity).
+        * mark_rts.c (GC_print_static_roots): Ditto.
+        * alloc.c (GC_stopped_mark): Output blank line (when logging) for
+        convenience to delimit collections.
+        * alloc.c (GC_clear_a_few_frames): Rename NWORDS to CLEAR_NWORDS;
+        make "frames" local variable volatile (to prevent optimization).
+        * alloc.c (GC_try_to_collect_inner, GC_stopped_mark,
+        GC_finish_collection, GC_allocobj): Remove outdated comments about
+        disabling signals.
+        * include/private/gc_priv.h (GC_register_displacement_inner,
+        GC_gcollect_inner): Ditto.
+        * alloc.c (GC_try_to_collect_inner, GC_stopped_mark,
+        GC_finish_collection): Initialize "start_time" local variable (to 0)
+        to suppress compiler warning.
+        * mark_rts.c (GC_add_roots_inner): Ditto (for "old" variable).
+        * alloc.c (GC_RATE, MAX_PRIOR_ATTEMPTS): Guard with "ifndef".
+        * include/private/gc_priv.h (clock, GC_stop_world, GC_start_world,
+        GC_acquire_mark_lock, GC_release_mark_lock, GC_notify_all_builder,
+        GC_wait_for_reclaim, GC_notify_all_marker, GC_wait_marker): Replace
+        K&R-style function prototypes with ANSI C one.
+        * include/private/gc_priv.h (ABORT): Define as DebugBreak() for
+        Win32/WinCE if SMALL_CONFIG (the same as in GC_abort()).
+        * include/private/gc_priv.h (ROUNDED_UP_WORDS, abs): Remove unused
+        macros.
+        * include/private/gc_priv.h (GC_noop): Declare for Borland C the
+        same as for Watcom.
+        * mark_rts.c (GC_push_conditional_with_exclusions): Add ARGSUSED tag.
+
+2009-06-04  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       (diff89_cvs, resembling diff3, diff27, diff34, diff38, diff47, diff49,
+       diff59, diff60, diff66, diff67, diff68, diff69a, diff70, diff81
+       partly)
+        * dbg_mlc.c (GC_store_debug_info, GC_store_debug_info_inner): Remove
+        outdated comment about disabling signals.
+        * mallocx.c (GC_malloc_uncollectable,
+        GC_malloc_atomic_uncollectable): Ditto.
+        * os_dep.c: Ditto.
+        * dbg_mlc.c (GC_debug_change_stubborn, GC_debug_end_stubborn_change):
+        Add ARGSUSED tag.
+        * pthread_stop_world.c (GC_suspend_handler,
+        GC_suspend_handler_inner): Ditto.
+        * dbg_mlc.c (GC_debug_free, GC_debug_realloc): Fix printf message.
+        * dbg_mlc.c (GC_debug_realloc): Set "result" to NULL in the default
+        switch branch to suppress compiler warning.
+        * dyn_load.c (GC_init_dyld): Use ABORT() instead of GC_abort().
+        * include/private/darwin_semaphore.h (sem_init): Ditto.
+        * include/javaxfc.h: Replace "GC_H" with "_GC_H".
+        * include/private/dbg_mlc.h (GC_has_other_debug_info,
+        GC_store_debug_info): Replace K&R-style function prototypes with ANSI
+        C one.
+        * include/private/gcconfig.h (GC_FreeBSDGetDataStart, real_malloc,
+        GC_win32_get_mem, GC_wince_get_mem, GC_unix_get_mem): Ditto.
+        * include/private/pthread_support.h (GC_stop_init): Ditto.
+        * include/private/gcconfig.h: Refine comment about setting
+        GC_stackbottom.
+        * include/private/gcconfig.h (FIXUP_POINTER): Put parentheses in the
+        "right" places.
+        * include/private/pthread_support.h (GC_Thread_Rep): Refine comment
+        for "stack_end" field.
+        * mallocx.c (GC_malloc_uncollectable,
+        GC_malloc_atomic_uncollectable): Remove cast to undefined "hbklk".
+        * os_dep.c (GC_USE_MEM_TOP_DOWN): New macro (for setting
+        GC_mem_top_down to MEM_TOP_DOWN for debug purposes).
+        * os_dep.c (GC_gww_read_dirty, catch_exception_raise): Fix WARN()
+        format specifier (should be word-compliant, "%p" is used w/o "0x").
+        * pthread_stop_world.c (GC_suspend_handler_inner): Ditto.
+        * os_dep.c (GC_dirty_init): Append new-line to printf messages.
+        * os_dep.c (GC_mprotect_thread): Fix GC_err_printf message.
+        * os_dep.c (GC_save_callers): Change GC_ASSERT to GC_STATIC_ASSERT.
+        * pthread_stop_world.c (GC_retry_signals, GC_suspend_ack_sem): Define
+        as STATIC.
+        * pthread_stop_world.c (GC_push_all_stacks): Add assertion for that
+        "thread_blocked" is not set for the current thread.
+        * real_malloc.c: Add "extern GC_quiet" to suppress compiler warning.
+        * reclaim.c (GC_reclaim_all): Initialize "start_time" (to 0) to
+        suppress compiler warning.
+       
+2009-06-02  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       (adding last bit of diff86_cvs)
+       * tests/test.c (check_heap_stats): Avoid unbalanced brackets in ifdef.
+
+2009-05-27  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       (diff26)
+       * win32_threads.c: restructure parallel marking mutex intialization.
+       * win32_threads.c, alloc.c, darwin_stop_world.c, mallocx.c, mark.c,
+       pthread_stop_world.c, pthread_support.c: Add runtime conditions
+       on GC_parallel were appropriate.
+       * pthread_support.c: Condition marker_bsp on ia64.
+       (GC_segment_is_thread_stack): Fix loop upper bound.
+       * reclaim.c: Limit some assertions to PARALLEL_MARK.
+       * pthread_support.c: Don't acquire mark lock for thread-local
+       allocation.
+       * include/private/gc_priv.h: Don't define parallel mark sync
+       support just for THREAD_LOCAL_ALLOC.
+
+2009-05-27  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       (diff39)
+       * include/private/gcconfig.h: refine MINGW32 test.
+       * mark.c: Add win64/gcc tests.
+
+2009-05-27  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       (diff86_cvs, resembling diff28, diff32, diff33, diff38, diff68 partly)
+       * test.c (fork_a_thread, reverse_test, alloc8bytes, tree_test,
+        typed_test, run_one_test, check_heap_stats, main, test): Replace
+        all K&R-style function definitions with ANSI C ones.
+        * trace_test.c (main): Ditto.
+        * test.c (GC_COND_INIT): Define as GC_INIT() also in case of
+        THREAD_LOCAL_ALLOC.
+        * test.c (reverse_test): Call fork_a_thread() only if GC_PTHREADS
+        or GC_WIN32_THREADS; remove fork_a_thread() macros definition.
+        * test.c (reverse_test): Use "volatile" when clearing "b" and "c"
+        local variables (to suppress "assigned value is never used"
+        compiler warning).
+        * test.c (tree_test): Use public GC_noop1() instead of private
+        GC_noop().
+        * test.c (typed_test): Ditto.
+        * test.c (check_heap_stats): Define and assign value to
+        "late_finalize_count" local variable only if its value is used
+        (if FINALIZE_ON_DEMAND defined).
+        * test.c (main): Remove DJGPP-specific initialization of
+        GC_stackbottom (not needed anymore, handled in gcconfig.h).
+        * trace_test.c: Guard #define GC_DEBUG with #ifndef.
+        * trace_test.c: Include "gc_backptr.h".
+        * trace_test.c (main): Call GC_INIT().
+        * trace_test.c (main): Add "return 0" statement.
+
+2009-05-25  Hans Boehm <Hans.Boehm@hp.com> (Really Petter Urkedal)
+       * dyn_load.c (GC_register_dynlib_callback): Use new index j
+       instead of i in the inner loop.
+
+2009-05-24  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski, diff85)
+       * tests/test.c: Increment n_tests with fetch_and_add when possible,
+       avoiding need to export lock.
+
+2009-05-22  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski, diff63,diff65)
+       * include/gc_pthread_redirects.h:
+               - dlfcn.h is included for dlopen() proto before undefining
+               "dlopen" (so, it's possible now to include dlfcn.h after
+               gc.h from user code);
+               - GC_dlopen() proto is added (except for Darwin as
+               it's missing there);
+               - "dlopen" is explicitly undefined (before its redefinition).
+       * include/gc.h:
+               - "process.h" is included besides "windows.h"
+               (for _beginthreadex/_endthreadex); win32 only.
+               - GC_NO_THREAD_DECLS is moved to the right place
+               (before closing "extern C").
+       * pthread_support.c: Fix out of memory handling for Thread_Reps.
+       * win32_threads.c: Don't include process.h on winCE,
+       improve out of memory handling for thread structures, dont
+       define GC_beginthreadex and GC_endthreadex for winCE.
+
+2009-05-22  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski, diff71)
+       * tests/test.c: Change gcj vtable decriptor type from size_t to
+       GC_word.
+
+2009-05-22  Hans Boehm <Hans.Boehm@hp.com>
+       * gcj_mlc.c: Add comment.
+       * tests/test.c: Change NTEST to NTHREADS.  Fork 5 threads by default.
+       Run reverse_test a second time in each thread.Add comments.
+       Dont rely on AO_fetch_and_add.
+
+2009-05-22  Hans Boehm <Hans.Boehm@hp.com> (Largely from Ludovic Cortes)
+       * dyn_load.c (GC_register_dynlib_callback,
+       GC_register_dynamic_libraries_dl_iterate_phdr): Add support
+       for GNU_PT_RELRO relocations.
+
+2009-05-22  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski, diff61)
+       * Makefile, Makefile.direct: GC_SOLARIS_PTHREADS was replaced
+       by GC_SOLARIS_THREADS.
+       * include/gc.h: Improve finalizer documentation.
+       * mips_sgi_mach_dep.s: Replace _MIPS_SIM_ABI32 with _ABIO32.
+       * pthread_stop_world.c, Makefile.dj: Fix typos.
+
+2009-05-21  Hans Boehm <Hans.Boehm@hp.com> 
+       * win32_threads.c (GC_new_thread): Make first_thread
+       visible to the whole file.
+       (UNPROTECT): New macro.
+       (GC_push_stack_for, GC_suspend, GC_start_world): unprotect
+       thread structures before writing.
+       (GC_suspend): Acquire GC_fault_handler_lock before suspending
+       thread.
+       * os_dep.c: export GC_fault_handler_lock.
+       (GC_remove_protection): Check if already unprotected.
+
+2009-05-20  Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
+       * doc/README.win32: Add OpenWatcom warning.
+       * include/private/gcconfig.h: Really check it in.
+
+2009-05-19  Hans Boehm <Hans.Boehm@hp.com> (Mostly Ivan Maidanski, Dave Korn)
+       * os_dep.c (GC_get_stack_base, windows): Replace with Dave Korn's
+       code from gcc version.
+       * os_dep.c: make gc compilable (optionally) for Cygwin with
+       GetWriteWatch-based virtual dirty bit implementation ("os_dep.c" file). 
+       * os_dep.c: Make non-win32 GC_write_fault_handler STATIC.
+       * mark.c (GC_noop): fix declaration definition mismatch for DMC.
+       * include/private/gcconfig.h: Enable MPROTECT_VDB and GWW_VDB for
+       Watcom (Win32 only).  It works.
+
+       and GWW_VDB.  It works.
+
+2009-05-07  Hans Boehm <Hans.Boehm@hp.com> and Mark Sibly
+       * mach_dep.c: Don't use __builtin_unwind_init for register
+       state on PowerPC/Darwin.
+
+2009-04-24  Hans Boehm <Hans.Boehm@hp.com>
+       * doc/gcdescr.html: Improve description of object freelist
+       structure.
+       * include/private/gc_priv.h: Fix comment for _size_map.
+
+2009-03-16  Hans Boehm <Hans.Boehm@hp.com>
+       * os_dep.c (GC_linux_stack_base): Relax sanity test.
+
+2009-03-11  Hans Boehm <Hans.Boehm@hp.com>  (Really Ivan Maidanski)
+       * include/private/gc_pmark.h (PUSH_CONTENTS_HDR for
+       MARK_BIT_PER_OBJ): Add missing backslash before eoln.
+
+2009-02-28  Hans Boehm <Hans.Boehm@hp.com>
+       * misc.c (GC_set_warn_proc): Implicitly intialize GC on
+       non-Cygwin win32.
+
+2009-02-28  Hans Boehm <Hans.Boehm@hp.com> (Really Petr Krajca)
+       * configure.ac: Enable thread-local allocation for sparc-linux.
+       * configure: Regenerate.
+
+2009-02-28  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
+       * alloc.c (GC_try_to_collect): Remove duplicate initialization
+       check.
+       * malloc.c (GC_generic_malloc): Remove lw to eliminate single-
+       threaded warnings.
+       * mallocx.c (GC_generic_malloc_ignore_off_page): Ditto.
+
+2009-02-28  Hans Boehm <Hans.Boehm@hp.com> (Mostly Ivan Maidansky)
+       * allchblk.c, backgraph.c, dbg_mlc.c, dyn_load.c,
+       finalize.c, include/private/gc_pmark.h, malloc.c, mark.c,
+       os_dep.c, pthread_stop_world.c, pthread_support.c, reclaim.c,
+       thread_local_alloc.c.
+       * misc.c: Refine comment.
+
+2009-02-28  Hans Boehm <Hans.Boehm@hp.com>
+       * os_dep.c: Define GC_GWW_BUF_LEN more intelligently.  Add FIXME
+       comment.
+
+2009-02-28  Hans Boehm <Hans.Boehm@hp.com> (With input from Ivan Maidansky)
+       * win32_threads.c (GC_push_stack_for): Yet another attempt
+       at the stack_min finding logic.  Try to clean up the existing code
+       while minimizing VirtualQuery calls.
+       (GC_win32_start_inner): Register thread before GC_printf.
+       Produce more output with DEBUG_THREADS.
+       *include/gc.h: Update obsolete comments.
+
+2009-02-24  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
+       * tests/test.c:
+       (gcj_class_struct2): Use cast instead of l suffix.
+       Cast GetLastError to int in various places.
+       Avoid unused result warning from incr/decr macros.
+       Add cast for fake_gcj_mark_proc.
+       Cast GC_gc_no to unsigned in printf.
+
+2009-02-24  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
+       * include/gc.h: Fix two typos in comments.
+
+2009-02-24  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
+       * finalize.c: Fix typo in comment.
+
+2008-12-03  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
+       * blacklst.c (GC_print_source_pointer): Don't call GC_print_heap_obj
+       with lock.
+
+2008-12-01  Hans Boehm <Hans.Boehm@hp.com>
+       * reclaim.c: (GC_reclaim_block): Scan even nearly full blocks
+       if we are checking for leaks.
+
+2008-11-12  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Ivan Maidansky)
+       * win32_threads.c: Remove mark lock spinning.
+       * win32_threads.c, pthread_support.c: Update GC_unlocked_count,
+       GC_spin_count, and GC_block_count using atomic operations.
+       * tests/test.c: Declare n_tests as AO_t only if we have threads.
+
+2008-11-11  Hans Boehm <Hans.Boehm@hp.com>
+       (Really almost entirely Ivan Maidansky)
+       * win32_threads.c: Support PARALLEL_MARK.  Make printf arg
+       types agree with format specifiers.  Add missing copyright header.
+       Add STATIC for GC_threads.
+       * include/private/gcconfig.h: Add FIXME comment.
+       * tests/test.c (run_ine_test): Replace LOCK/UNLOCK use with
+       AO_fetch_and_add1_full.  Declare n_tests as AO_t.
+       (WinMain): Dont call GC_use_DllMain.
+       with PARALLEL_MARK or THREAD_LOCAL_ALLOC.
+
+2008-11-10  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
+       * alloc.c (GC_try_to_collect_inner): Don't print redundant
+       GC_bytes_allocd and GC_gc_no.
+       (GC_stopped_mark): Print average world stop time.
+       * include/private/gc_priv.h (MS_TIME_DIFF): Add cast.
+
+2008-11-10  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Ivan Maidansky)
+       * misc.c, doc/README.environment: Add support  for
+       GC_FREE_SPACE_DIVISOR and GC-disable-incremental.
+       * include/gc.h: Make GC_set_free_space_divisor correspond to
+       (somewhat unfortunate) reality.
+
+2008-11-07  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
+       (Mostly improves LLP64 support.)
+       * backgraph.c, checksums.c, dbg_mlc.c, finalize.c, mark.c,
+       misc.c, reclaim.c: Changed some int and long type to word or size_t
+       (and vice versa where appropriate)
+       * gcj_mlc.c, include/private/dbg_mlc.h, include/private/gcconfig.h,
+       include/private/thread_local_alloc.h, mark.c,
+       misc.c, thread_local_alloc.c, win32_threads.c: Added intermediate
+       casts to word type when casting from int to pointer (or pointer
+       to int, or data pointer to code pointer) - just to remove the
+       corresponding compiler warning.
+       * ptr_chck.c (GC_is_visible): cast int const to word type to
+       prevent left shift overflow.
+       * os_dep.c: change the type of GC_mem_top_down global var
+       (containing a flag) to DWORD.
+       * include/gc_config_macros.h: define GC_SOLARIS_THREADS if GC_THREADS
+       is defined on SunOS x86_64.
+       * misc.c (GC_init_size_map): Ifdef out GC_ASSERT as a workaround
+       for VC++ 2008 amd64 (v15.00.21022.08 for x64) compiler bug
+       (the compiler gets hung if invoked with -Ox -D
+       ALL_INTERIOR_POINTERS -D GC_ASSERTIONS)
+       * backgraph.c: cast GC_gc_no value to unsigned short when
+       assigned/compared to height_gc_no field of back_edges.
+       * os_dep.c (GC_remove_protection): Add ARGSUSED.
+       * win32_threads.c (GC_thread_exit_proc): Remove unused local var.
+       * mark.c (GC_check_dirty): Move declaration out of func body.
+
+2008-11-06  Hans Boehm <Hans.Boehm@hp.com>
+       * doc/gcinterface.html: Improve REDIRECT_MALLOC documentation.
+       * include/gc.h (GC_register_my_thread): Improve comment.
+
+2008-11-04  Hans Boehm <Hans.Boehm@hp.com>
+       * Makefile.direct: Add comment for -DCHECKSUMS.
+
+2008-10-27  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
+       * thread_local_alloc.c, include/private/thread_local_alloc.h:
+       Fix typos in comments.
+       * finalize.c: Declare mark_procs and GC_register_finalizer_inner
+       STATIC.
+       * malloc.c (GC_free): Move size calculation below assertion.
+
+2008-10-27  Hans Boehm <Hans.Boehm@hp.com>
+       * win32_threads.c (GC_get_stack_min, GC_may_be_in_stack):
+       Add one entry VirtualQuery cache, I_HOLD_LOCK assertions.
+       (GC_push_stack_for, GC_get_next_stack) : Hopefully fix WINCE support.
+
+2008-10-27  Hans Boehm <Hans.Boehm@hp.com> (Thanks to Klaus Treichel.)
+       * finalize.c (GC_general_register_disappearing_link): Add
+       assertion.
+       * malloc.c (GC_generic_malloc): Round lb to granules, not words.
+       * mallocx.c (GC_generic_malloc_ignore_off_page): Round lb to
+       granules, not words.
+
+2008-10-27  Hans Boehm <Hans.Boehm@hp.com> (Really Rex Dieter and
+       Petr Krajca)
+       * mach_dep.c (NO_GETCONTEXT): Define for sparc linux.
+       * configure.ac: Define mach_dep for sparc-linux.
+       * configure: Regenerate.
+
+2008-10-25  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
+       * mark_rts.c (GC_approx_sp): Use volatile to avoid common
+       warning.
+
+2008-10-25  Hans Boehm <Hans.Boehm@hp.com>
+       * dyn_load.c (GC_cond_add_roots): Fix GC_get_next_stack argument
+       order.
+
+2008-10-24  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       * alloc.c, dbg_mlc.c, dyn_load.c, finalize.c, gcj_mlc.c,
+       include/gc.h, include/gc_config_macros.h, include/gc_cpp.h,
+       include/gc_gcj.h, include/gc_mark.h, include/gc_typed.h,
+       include/javaxfc.h, include/private/gc_locks.h,
+       include/private/gc_priv.h, malloc.c, mallocx.c, mark.c, mark_rts.c,
+       misc.c, obj_map.c, os_dep.c, pthread_support.c, ptr_chck.c,
+       stubborn.c, tests/test.c, thread_local_alloc.c, typd_mlc.c
+       win32_threads.c: Add GC_CALL and GC_CALLBACK macro invocations.
+       * test.c: Remove some old K&R code.
+
+2008-10-24  Hans Boehm <Hans.Boehm@hp.com>
+       (Partially based loosely on patch from Ivan Maidanski)
+       * win32_threads.c (GC_may_be_in_stack): New.  (GC_Thread_Rep):
+       Add last_stack_min.  (GC_push_stack_for): Use last_stack_min.
+       (GC_get_next_stack): Add limit argument, use_last_stack_min.
+       (GC_suspend): make stack_base assignment conditional.
+       * dyn_load.c (win32 GC_cod_add_roots): Pass limit to
+       GC_get_next_stack.
+       * configure_atomic_ops.sh: Remove.
+       * build_atomic_ops.sh, build_atomic_ops.sh.cygwin, doc/README.win32,
+       Makefile.direct: Partially support build directories whose path
+       name contains blanks.
+       * Makefile.am: Support new files (build_atomic_ops.sh,
+       build_atomic_ops.sh.cygwin)
+       * Makefile.in: Regenerate.
+
+2008-10-21  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       * include/private/gc_locks.h, include/private/gc_pmark.h,
+       include/private/gc_priv.h, include/private/gcconfig.h,
+       mach_dep.c, mark_rts.c, misc.c, os_dep.c, pthread_stop_world.c,
+       pthread_support.c, thread_local_alloc.c, typd_mlc.c, win32_threads.c:
+       Fix comments.
+
+2008-10-21  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       * pthread_support.c: Comment out LOCK_STATS.
+       * include/gc.h: Fix comments.
+
+2008-10-20  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       * misc.c (GC_init_inner): Enable GC_LOG_FILE on Cygwin.
+       * include/private/gcconfig.h: Consider USE_MMAP for Cygwin.
+       * os_dep.c (GC_get_main_stack_base): Use alternate definition
+       with USE_MMAP.
+       * include/private/gc_priv.h: Sometimes define SETJMP on Cygwin.
+
+2008-10-20  Hans Boehm <Hans.Boehm@hp.com>
+       * doc/README: Make it clearer when Makefile.direct is assumed.
+       * cord/cord.am: install include/cord.h.
+       * Makefile.in: Regenerate.
+
+2008-09-24  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       * win32_threads.c (GC_pthread_join, GC_pthread_start_inner):
+       Remove unused variables.
+       * darwin_stop_world.c: Always declare GC_thr_init().
+       * dbg_mlc.c (GC_debug_free_inner): Dont touch oh_sz if
+       SHORT_DBG_HDRS is defined.
+       * include/private/gc_pmark.h (OR_WORD_EXIT_IF_SET, parallel
+       mark, USE_MARK_BITS version): Refer to correct parameter name.
+
+2008-09-24  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       * finalize.c (GC_general_register_disappearing_link): Remove
+       redundant code.
+       * gcj_mlc.c (GC_init_gcj_malloc): Add cast to signed.
+       * os_dep.c: (GC_write_fault_handler): Remove remaining
+       references to deleted variable "code".  Remove redundant
+       FREEBSD definitions.
+       * include/private/gcconfig.h (GWW_VDB): Define for X86_64 when
+       defined for X86. (STATIC): Define as "static" with NO_DEBUGGING.
+
+2008-09-24  Hans Boehm <Hans.Boehm@hp.com>
+       * include/private/gc_priv.h: Update MAX_HEAP_SECTS.
+
+2008-09-10  Hans Boehm <Hans.Boehm@hp.com>
+       * dbg_mlc.c (GC_print_smashed_obj): Increase robustness with
+       smashed string, (GC_debug_free_inner): Mark as free.
+       * mallocx.c (GC_malloc_many): Always clear new block if
+       GC_debugging_started.
+       * reclaim.c: Move GC_debugging_started from
+       GC_reclaim_small_nonempty_block() to GC_reclaim_generic(),
+       which is also called directly.
+       * doc/README: Fix spelling error.  Update license summary.
+       * include/gc.h (GC_PRE_INCR3, GC_POST_INCR3): add (void **) casts.
+       * tests/test.c: Don't define GC_DEBUG if already defined.
+
+2008-08-27  Hans Boehm <Hans.Boehm@hp.com>
+       * doc/simple_example.html: update --enable-full-debug reference,
+       Make HTML formatting standards compliant.
+       * doc/debugging.html, doc/leak.html: Fix HTML formatting bugs.
+       * doc/gcinterface.html: specify encoding.
+
+2008-08-27  Hans Boehm <Hans.Boehm@hp.com> (with help from Marco Maggi)
+       * doc/simple_example.html: Update thread-local allocation
+       description.
+
+2008-08-26  Hans Boehm <Hans.Boehm@hp.com> (with help from Marco Maggi)
+       * configure.ac: Check for gc-debug earlier; replace remaining
+       full-debug tests.
+       * configure: Regenerate.
+       * include/gc.h, ptr_chck.c (GC_pre_incr, GC_post_incr):
+       Use signed offset type.  Use ptr_t internally.
+       * doc/gcinterface.html: Update LOCAL_MALLOC description.
+       * doc/README.autoconf, doc/leak.html, doc/README.DGUX386:
+       Fix full-debug reference.
+       * include/gc.h: Rewrite GC_..._INCR and friends.
+       * tests/test.c: Minimally test GC_..._INCR and friends.
+
+2008-08-21  Hans Boehm <Hans.Boehm@hp.com>
+       * mark.c: (GC_push_next_marked, GC_push_next_marked_dirty,
+       GC_push_next_marked_uncollectable): Never invoke GC_push_marked
+       on free hblk.
+       * headers.c: Test COUNT_HDR_CACHE_HITS not USE_HDR_CACHE.
+       (GC_header_cache_miss): Always blacklist pointers for free
+       hblks.  Add assertion and comment.
+       * pthread_support.c (GC_register_my_thread): Fix #if indentation.
+       * include/private/gc_hdrs.h: USE_HDR_CACHE is no longer tested.
+       Delete it.
+       * include/private/gc_pmark.h: (PUSH_OBJ): Add assertion.
+
+2008-08-21  Hans Boehm <Hans.Boehm@hp.com>
+       * alloc.c, include/gc_mark.h, Makefile.direct: Improve comments.
+
+2008-08-01  Hans Boehm <Hans.Boehm@hp.com> (Really Klaus Treichel)
+       * configure.ac: Set win32_threads on MinGW.
+       * configure: Regenerate.
+
+2008-07-25  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Ivan Maidanski)
+       Ivan's description of the patch follows. Note that a few pieces like
+       the GC_malloc(0) patch, were not applied since an alternate had been
+       previously applied.  A few differed stylistically from the rest of
+       the code (mostly casts to void * instead of target type),
+       or were classified as too minor to bother.  Note that
+       all of Ivan's static declarations which did not correct outright
+       naming bugs (as a few did), where replaced by STATIC, which is
+       ignored by default.
+
+        - minor bug fixing (for FreeBSD, for THREAD_LOCAL_ALLOC and for
+         GC_malloc(0));
+        - addition of missing getter/setter functions for public variables
+         (may be useful if compiled as Win32 DLL);
+        - addition of missing GC_API for some exported functions;
+        - addition of missing "static" declarator for internal functions
+          and variables (where possible);
+        - replacement of all remaining K&R-style definitions with ANSI
+         C ones (__STDC__ macro is not used anymore);
+        - addition of some Win32 macro definitions (that may be missing in
+         the standard headers supplied with a compiler) for GWW_VDB mode;
+        - elimination of most compiler warnings (except for
+         "uninitialized data" warning);
+        - several typos correction;
+        - missing parenthesis addition in macros in some header files of
+         "libatomic_ops" module.
+
+       My highlights based on reading the patch:
+
+       * allchblk.c: Remove GC_freehblk_ptr decl.
+       Make free_list_index_of() static.
+       * include/gc.h: Use __int64 on win64, define GC_oom_func, 
+       GC_finalizer_notifier_proc, GC_finalizer_notifier_proc,
+       add getter and setters: GC_get_gc_no, GC_get_parallel,
+       GC_set_oom_fn, GC_set_finalize_on_demand,
+       GC_set_java_finalization, GC_set_dont_expand,
+       GC_set_no_dls, GC_set_max_retries, GC_set_dont_precollect,
+       GC_set_finalizer_notifier.  Always define GC_win32_free_heap.
+       gc_config_macros.h: Define _REENTRANT after processing
+       GC_THREADS.
+       * include/gc_cpp.h: Improve GC_PLACEMENT_DELETE test,
+       handling of operator new[] for old Windows compilers.
+       * include/gc_inline.h (GC_MALLOC_FAST_GRANS): Add parentheses
+       around arguments.
+       * dbg_mlc.c, malloc.c, misc.c: Add many GC_API specs.
+       * mark.c (GC_mark_and_push_stack): Fix source argument for
+       blacklist printing.
+       * misc.c: Fix log file naming based on environment variable
+       for Windows.  Make GC_set_warn_proc and GC_set_free_space_divisor
+       just return current value with 0 argument.  Add DONT_USER_USER32_DLL.
+       Add various getters and setters as in gc.h.
+       * os_dep.c: Remove no longer used GC_disable/enable_signals
+       implementations.  (GC_get_stack_base): Add pthread_attr_destroy
+       call.  No longer set GC_old_bus_handler in DARWIN workaround.
+       * pthread_support.c: GC_register_my_thread must also
+       call GC_init_thread_local.
+
+2008-07-21  Hans Boehm <Hans.Boehm@hp.com>
+       * Makefile.direct, mach_dep.c: Add support for NO_GETCONTEXT.
+       * mach_dep.c: Include signal.h.
+       * gc_priv.h: Factor out INLINE declaration.
+
+2008-07-03  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Thiemo Seufer)
+
+       * include/private/gcconfig.h: Update MIPS/LINUX config.
+       * doc/gcdescr.html: Fix typo.
+       * mach_dep.c (GC_with_callee_saves_pushed): Don't rely on getcontext
+       for MIPS/LINUX.
+
+2008-05-30  Hans Boehm <Hans.Boehm@hp.com> (some really dmcmahill)
+
+       * configure.ac: SPARC fixes.
+       * configure: Regenerate.
+       * thread_local_alloc.c(GC_mark_thread_local_fls_for): Include
+       size 0, except for gcj.
+       * doc/gc.man: Expand C++ cautions.
+       * include/gc_inline.h: Fix comments.
+
+2008-05-03  Hans Boehm <Hans.Boehm@hp.com>
+       
+       * include/gc_version.h, configure.ac, doc/README:
+       Change to version 7.2alpha1.
+       * configure: Regenerate.
+
+[7.1]
+
+2008-05-03  Hans Boehm <Hans.Boehm@hp.com>
+       
+       * include/gc_version.h, configure.ac, doc/README:
+       Change to version 7.1.
+       * configure: Regenerate.
+
 2008-05-03  Hans Boehm <Hans.Boehm@hp.com>
 
        * doc/gcinterface.html: Improve C++ interface documentation.