dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dotgnu-pnet-commits] pnet ChangeLog libgc/ChangeLog libgc/alloc.c li...


From: Klaus Treichel
Subject: [dotgnu-pnet-commits] pnet ChangeLog libgc/ChangeLog libgc/alloc.c li...
Date: Wed, 22 Oct 2008 19:20:31 +0000

CVSROOT:        /cvsroot/dotgnu-pnet
Module name:    pnet
Changes by:     Klaus Treichel <ktreichel>      08/10/22 19:20:31

Modified files:
        .              : ChangeLog 
        libgc          : ChangeLog alloc.c configure.ac 
                         darwin_stop_world.c dbg_mlc.c dyn_load.c 
                         finalize.c gcj_mlc.c mach_dep.c mallocx.c 
                         mark_rts.c misc.c mkinstalldirs os_dep.c 
                         pthread_stop_world.c pthread_support.c 
                         ptr_chck.c reclaim.c thread_local_alloc.c 
                         typd_mlc.c win32_threads.c 
        libgc/cord     : cord.am 
        libgc/doc      : README README.DGUX386 README.autoconf 
                         debugging.html gcinterface.html leak.html 
                         simple_example.html 
        libgc/include  : gc.h gc_allocator.h gc_config_macros.h 
                         gc_mark.h gc_typed.h javaxfc.h new_gc_alloc.h 
        libgc/include/private: dbg_mlc.h gc_locks.h gc_pmark.h gc_priv.h 
                               gcconfig.h 
        libgc/libatomic_ops-1.2: ChangeLog 
        libgc/libatomic_ops-1.2/src: atomic_ops.c atomic_ops.h 
                                     atomic_ops_stack.c 
                                     atomic_ops_stack.h 
        libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps: 
                                                        
aligned_atomic_load_store.h 
                                                        
all_aligned_atomic_load_store.h 
                                                        all_atomic_load_store.h 
                                                        atomic_load_store.h 
                                                        
char_atomic_load_store.h 
                                                        
int_aligned_atomic_load_store.h 
                                                        int_atomic_load_store.h 
                                                        
short_aligned_atomic_load_store.h 
                                                        
short_atomic_load_store.h 
        libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc: arm.h x86.h 
                                                            x86_64.h 
        libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc: hppa.h 
                                                            ia64.h 

Log message:
        Include the latest libgc changes.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3576&r2=1.3577
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/ChangeLog?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/alloc.c?cvsroot=dotgnu-pnet&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/configure.ac?cvsroot=dotgnu-pnet&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/darwin_stop_world.c?cvsroot=dotgnu-pnet&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/dbg_mlc.c?cvsroot=dotgnu-pnet&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/dyn_load.c?cvsroot=dotgnu-pnet&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/finalize.c?cvsroot=dotgnu-pnet&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/gcj_mlc.c?cvsroot=dotgnu-pnet&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/mach_dep.c?cvsroot=dotgnu-pnet&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/mallocx.c?cvsroot=dotgnu-pnet&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/mark_rts.c?cvsroot=dotgnu-pnet&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/misc.c?cvsroot=dotgnu-pnet&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/mkinstalldirs?cvsroot=dotgnu-pnet&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/os_dep.c?cvsroot=dotgnu-pnet&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/pthread_stop_world.c?cvsroot=dotgnu-pnet&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/pthread_support.c?cvsroot=dotgnu-pnet&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/ptr_chck.c?cvsroot=dotgnu-pnet&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/reclaim.c?cvsroot=dotgnu-pnet&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/thread_local_alloc.c?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/typd_mlc.c?cvsroot=dotgnu-pnet&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/win32_threads.c?cvsroot=dotgnu-pnet&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/cord/cord.am?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/doc/README?cvsroot=dotgnu-pnet&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/doc/README.DGUX386?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/doc/README.autoconf?cvsroot=dotgnu-pnet&r1=1.1.1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/doc/debugging.html?cvsroot=dotgnu-pnet&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/doc/gcinterface.html?cvsroot=dotgnu-pnet&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/doc/leak.html?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/doc/simple_example.html?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/gc.h?cvsroot=dotgnu-pnet&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/gc_allocator.h?cvsroot=dotgnu-pnet&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/gc_config_macros.h?cvsroot=dotgnu-pnet&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/gc_mark.h?cvsroot=dotgnu-pnet&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/gc_typed.h?cvsroot=dotgnu-pnet&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/javaxfc.h?cvsroot=dotgnu-pnet&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/new_gc_alloc.h?cvsroot=dotgnu-pnet&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/private/dbg_mlc.h?cvsroot=dotgnu-pnet&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/private/gc_locks.h?cvsroot=dotgnu-pnet&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/private/gc_pmark.h?cvsroot=dotgnu-pnet&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/private/gc_priv.h?cvsroot=dotgnu-pnet&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/include/private/gcconfig.h?cvsroot=dotgnu-pnet&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/ChangeLog?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops.c?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops.h?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops_stack.c?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops_stack.h?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/aligned_atomic_load_store.h?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_atomic_load_store.h?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/atomic_load_store.h?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/char_atomic_load_store.h?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_atomic_load_store.h?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_atomic_load_store.h?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/arm.h?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86.h?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86_64.h?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/hppa.h?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/ia64.h?cvsroot=dotgnu-pnet&r1=1.1&r2=1.2

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3576
retrieving revision 1.3577
diff -u -b -r1.3576 -r1.3577
--- ChangeLog   19 Oct 2008 16:45:17 -0000      1.3576
+++ ChangeLog   22 Oct 2008 19:19:59 -0000      1.3577
@@ -1,3 +1,42 @@
+2008-10-22  Klaus Treichel  <address@hidden>
+
+       * libgc/ChangeLog, libgc/alloc.c, libgc/configure.ac,
+       libgc/darwin_stop_world.c, libgc/dbg_mlc.c, libgc/dyn_load.c,
+       libgc/finalize.c, libgc/gcj_mlc.c, libgc/mach_dep.c, libgc/mallocx.c,
+       libgc/mark_rts.c, libgc/misc.c, libgc/mkinstalldirs, libgc/os_dep.c,
+       libgc/pthread_stop_world.c, libgc/pthread_support.c, libgc/ptr_chck.c,
+       libgc/reclaim.c, libgc/thread_local_alloc.c, libgc/typd_mlc.c,
+       libgc/win32_threads.c, libgc/cord/cord.am, libgc/doc/README,
+       libgc/doc/README.DGUX386, libgc/doc/README.autoconf,
+       libgc/doc/debugging.html, libgc/doc/gcinterface.html,
+       libgc/doc/leak.html, libgc/doc/simple_example.html,
+       libgc/include/gc.h, libgc/include/gc_allocator.h,
+       libgc/include/gc_config_macros.h, libgc/include/gc_mark.h,
+       libgc/include/gc_typed.h, libgc/include/javaxfc.h,
+       libgc/include/new_gc_alloc.h, libgc/include/private/dbg_mlc.h,
+       libgc/include/private/gc_locks.h,, libgc/include/private/gc_pmark.h,
+       libgc/include/private/gc_priv.h, libgc/include/private/gcconfig.h,
+       libgc/libatomic_ops-1.2/ChangeLog,
+       libgc/libatomic_ops-1.2/src/atomic_ops.c,
+       libgc/libatomic_ops-1.2/src/atomic_ops.h,
+       libgc/libatomic_ops-1.2/src/atomic_ops_stack.c,
+       libgc/libatomic_ops-1.2/src/atomic_ops_stack.h,
+       
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
+       
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h,
+       libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_atomic_load_store.h,
+       libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/atomic_load_store.h,
+       libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/char_atomic_load_store.h,
+       
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
+       libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_atomic_load_store.h,
+       
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
+       
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_atomic_load_store.h,
+       libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/arm.h,
+       libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86.h,
+       libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86_64.h,
+       libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/hppa.h,
+       libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/ia64.h: Include the
+       latest libgc changes.
+
 2008-10-19  Klaus Treichel  <address@hidden>
 
        * codegen/cg_lvalue.tc (ILQualIdentGetName): Add function to get the 
name

Index: libgc/ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/ChangeLog,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/ChangeLog     30 Aug 2008 13:57:42 -0000      1.2
+++ libgc/ChangeLog     22 Oct 2008 19:19:59 -0000      1.3
@@ -1,3 +1,82 @@
+2008-10-21  Hans Boehm <address@hidden> (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 <address@hidden> (Really Ivan Maidanski)
+       * pthread_support.c: Comment out LOCK_STATS.
+       * include/gc.h: Fix comments.
+
+2008-10-20  Hans Boehm <address@hidden> (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 <address@hidden>
+       * 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 <address@hidden> (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 <address@hidden> (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 <address@hidden>
+       * include/private/gc_priv.h: Update MAX_HEAP_SECTS.
+
+2008-09-10  Hans Boehm <address@hidden>
+       * 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 <address@hidden>
+       * 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 <address@hidden> (with help from Marco Maggi)
+       * doc/simple_example.html: Update thread-local allocation
+       description.
+
+2008-08-26  Hans Boehm <address@hidden> (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 <address@hidden>
        * mark.c: (GC_push_next_marked, GC_push_next_marked_dirty,
        GC_push_next_marked_uncollectable): Never invoke GC_push_marked

Index: libgc/alloc.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/alloc.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- libgc/alloc.c       30 Aug 2008 13:57:42 -0000      1.8
+++ libgc/alloc.c       22 Oct 2008 19:19:59 -0000      1.9
@@ -216,7 +216,7 @@
 
 
 /* Clear up a few frames worth of garbage left at the top of the stack.        
*/
-/* This is used to prevent us from accidentally treating garbade left  */
+/* This is used to prevent us from accidentally treating garbage left  */
 /* on the stack by other parts of the collector as roots.  This        */
 /* differs from the code in misc.c, which actually tries to keep the   */
 /* stack clear of long-lived, client-generated garbage.                        
*/

Index: libgc/configure.ac
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/configure.ac,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- libgc/configure.ac  30 Aug 2008 13:57:42 -0000      1.3
+++ libgc/configure.ac  22 Oct 2008 19:20:00 -0000      1.4
@@ -22,7 +22,7 @@
 AC_CONFIG_SRCDIR(gcj_mlc.c)
 AC_CANONICAL_TARGET 
 AC_PREREQ(2.53)
-AC_REVISION($Revision: 1.3 $)
+AC_REVISION($Revision: 1.4 $)
 GC_SET_VERSION
 AM_INIT_AUTOMAKE([foreign dist-bzip2 subdir-objects nostdinc])
 AM_MAINTAINER_MODE
@@ -432,6 +432,7 @@
 
 #
 # Check for AViiON Machines running DGUX
+# FIXME: Should this be moved down to below the gc-debug processing?
 #
 ac_is_dgux=no
 AC_CHECK_HEADER(sys/dg_sys_info.h,
@@ -439,7 +440,7 @@
 
     ## :GOTCHA: we do not check anything but sys/dg_sys_info.h
 if test $ac_is_dgux = yes; then
-    if test "$enable_full_debug" = "yes"; then
+    if test "$enable_gc_debug" = "yes"; then
       CFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
       CXXFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
     else
@@ -514,6 +515,38 @@
     AC_DEFINE(GC_GCJ_SUPPORT, 1, [Define to include support for gcj])
 fi
 
+dnl Debugging
+dnl ---------
+
+UNWINDLIBS=
+AC_ARG_ENABLE(gc-debug,
+[AC_HELP_STRING([--enable-gc-debug],
+    [include full support for pointer backtracing etc.])],
+[ if test "$enable_gc_debug" = "yes"; then
+    AC_MSG_WARN("Should define GC_DEBUG and use debug alloc. in clients.")
+    AC_DEFINE(KEEP_BACK_PTRS)
+    AC_DEFINE(DBG_HDRS_ALL)
+    case $host in
+      ia64-*-linux* )
+       AC_DEFINE(MAKE_BACK_GRAPH)
+       AC_DEFINE(SAVE_CALL_COUNT, 8)
+        AC_CHECK_LIB(unwind, backtrace, [
+         AC_DEFINE(GC_HAVE_BUILTIN_BACKTRACE)
+         UNWINDLIBS=-lunwind
+         AC_MSG_WARN("Client code may need to link against libunwind.")
+       ])
+      ;;
+      x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
+       AC_DEFINE(MAKE_BACK_GRAPH)
+       AC_MSG_WARN("Client must not use -fomit-frame-pointer.")
+       AC_DEFINE(SAVE_CALL_COUNT, 8)
+      ;;
+      i[3456]86-*-dgux*)
+       AC_DEFINE(MAKE_BACK_GRAPH)
+      ;;
+    esac ]
+  fi)
+
 AC_ARG_ENABLE(java-finalization,
     [AC_HELP_STRING([--disable-java-finalization],
        [Disable support for java finalization.])])
@@ -534,7 +567,7 @@
        [Redirect malloc and friends to GC routines])])
 
 if test "${enable_redirect_malloc}" = yes; then
-    if test "${enable_full_debug}" = yes; then
+    if test "${enable_gc_debug}" = yes; then
        AC_DEFINE(REDIRECT_MALLOC, GC_debug_malloc_replacement)
        AC_DEFINE(REDIRECT_REALLOC, GC_debug_realloc_replacement)
        AC_DEFINE(REDIRECT_FREE, GC_debug_free)
@@ -562,38 +595,6 @@
 fi
 
 
-dnl Debugging
-dnl ---------
-
-UNWINDLIBS=
-AC_ARG_ENABLE(gc-debug,
-[AC_HELP_STRING([--enable-gc-debug],
-    [include full support for pointer backtracing etc.])],
-[ if test "$enable_gc_debug" = "yes"; then
-    AC_MSG_WARN("Should define GC_DEBUG and use debug alloc. in clients.")
-    AC_DEFINE(KEEP_BACK_PTRS)
-    AC_DEFINE(DBG_HDRS_ALL)
-    case $host in
-      ia64-*-linux* )
-       AC_DEFINE(MAKE_BACK_GRAPH)
-       AC_DEFINE(SAVE_CALL_COUNT, 8)
-        AC_CHECK_LIB(unwind, backtrace, [
-         AC_DEFINE(GC_HAVE_BUILTIN_BACKTRACE)
-         UNWINDLIBS=-lunwind
-         AC_MSG_WARN("Client code may need to link against libunwind.")
-       ])
-      ;;
-      x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
-       AC_DEFINE(MAKE_BACK_GRAPH)
-       AC_MSG_WARN("Client must not use -fomit-frame-pointer.")
-       AC_DEFINE(SAVE_CALL_COUNT, 8)
-      ;;
-      i[3456]86-*-dgux*)
-       AC_DEFINE(MAKE_BACK_GRAPH)
-      ;;
-    esac ]
-  fi)
-
 AC_SUBST(UNWINDLIBS)
 
 AC_ARG_ENABLE(gc-assertions,

Index: libgc/darwin_stop_world.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/darwin_stop_world.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- libgc/darwin_stop_world.c   30 Aug 2008 13:57:42 -0000      1.6
+++ libgc/darwin_stop_world.c   22 Oct 2008 19:20:00 -0000      1.7
@@ -72,9 +72,10 @@
   return (unsigned long)frame;
 }
 
-#ifdef DARWIN_DONT_PARSE_STACK
 void GC_thr_init(void);
 
+#ifdef DARWIN_DONT_PARSE_STACK
+
 void GC_push_all_stacks(void)
 {
   int i;

Index: libgc/dbg_mlc.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/dbg_mlc.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- libgc/dbg_mlc.c     30 Aug 2008 13:57:42 -0000      1.7
+++ libgc/dbg_mlc.c     22 Oct 2008 19:20:00 -0000      1.8
@@ -420,7 +420,9 @@
         GC_err_printf("<smashed>, appr. sz = %ld)\n",
                       (GC_size((ptr_t)ohdr) - DEBUG_BYTES));
     } else {
-        if (ohdr -> oh_string[0] == '\0') {
+        if ((word)(ohdr -> oh_string) < HBLKSIZE) {
+            GC_err_puts("(smashed string)");
+        } else if (ohdr -> oh_string[0] == '\0') {
             GC_err_puts("EMPTY(smashed?)");
         } else {
             GC_err_puts(ohdr -> oh_string);
@@ -758,7 +760,13 @@
 /* Used internally; we assume it's called correctly.   */
 void GC_debug_free_inner(void * p)
 {
-    GC_free_inner(GC_base(p));
+    ptr_t base = GC_base(p);
+    GC_ASSERT((ptr_t)p - (ptr_t)base == sizeof(oh));
+#   ifndef SHORT_DBG_HDRS
+    /* Invalidate size */
+        ((oh *)base) -> oh_sz = GC_size(base);
+#   endif
+    GC_free_inner(base);
 }
 #endif
 

Index: libgc/dyn_load.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/dyn_load.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- libgc/dyn_load.c    30 Aug 2008 13:57:42 -0000      1.11
+++ libgc/dyn_load.c    22 Oct 2008 19:20:00 -0000      1.12
@@ -237,7 +237,7 @@
 /* Sort an array of HeapSects by start address.                                
*/
 /* Unfortunately at least some versions of                             */
 /* Linux qsort end up calling malloc by way of sysconf, and hence can't */
-/* be used in the colector.  Hence we roll our own.  Should be         */
+/* be used in the collector.  Hence we roll our own.  Should be                
*/
 /* reasonably fast if the array is already mostly sorted, as we expect */
 /* it to be.                                                           */
 static void sort_heap_sects(struct HeapSect *base, size_t number_of_elements)
@@ -1177,7 +1177,7 @@
           PCR_IL_LoadedFile * p = PCR_IL_GetLastLoadedFile();
           PCR_IL_LoadedSegment * q;
           
-          /* Skip uncommited files */
+          /* Skip uncommitted files */
           while (p != NIL && !(p -> lf_commitPoint)) {
               /* The loading of this file has not yet been committed   */
               /* Hence its description could be inconsistent.                  
*/

Index: libgc/finalize.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/finalize.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- libgc/finalize.c    30 Aug 2008 13:57:42 -0000      1.7
+++ libgc/finalize.c    22 Oct 2008 19:20:00 -0000      1.8
@@ -81,7 +81,7 @@
 } **fo_head = 0;
 
 STATIC struct finalizable_object * GC_finalize_now = 0;
-       /* LIst of objects that should be finalized now.        */
+       /* List of objects that should be finalized now.        */
 
 static signed_word log_fo_table_size = -1;
 
@@ -96,7 +96,7 @@
 }
 
 /* Double the size of a hash table. *size_ptr is the log of its current        
*/
-/* size.  May be a noop.                                               */
+/* size.  May be a no-op.                                              */
 /* *table is a pointer to an array of hash headers.  If we succeed, we */
 /* update both *table and *log_size_ptr.                               */
 /* Lock is held.  Signals are disabled.                                        
*/
@@ -169,7 +169,6 @@
        }
     }
     index = HASH2(link, log_dl_table_size);
-    curr_dl = dl_head[index];
     for (curr_dl = dl_head[index]; curr_dl != 0; curr_dl = dl_next(curr_dl)) {
         if (curr_dl -> dl_hidden_link == HIDE_POINTER(link)) {
             curr_dl -> dl_hidden_obj = HIDE_POINTER(obj);
@@ -487,8 +486,8 @@
 }
 #endif
 
-/* Called with world stopped.  Cause disappearing links to disappear,  */
-/* and invoke finalizers.                                              */
+/* Called with held lock (but the world is running).                   */
+/* Cause disappearing links to disappear, and invoke finalizers.       */
 void GC_finalize(void)
 {
     struct disappearing_link * curr_dl, * prev_dl, * next_dl;

Index: libgc/gcj_mlc.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/gcj_mlc.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- libgc/gcj_mlc.c     30 Aug 2008 13:57:42 -0000      1.5
+++ libgc/gcj_mlc.c     22 Oct 2008 19:20:00 -0000      1.6
@@ -81,7 +81,8 @@
       } else {
        GC_gcj_kind = GC_new_kind_inner(
                        (void **)GC_gcjobjfreelist,
-                       (((word)(-MARK_DESCR_OFFSET - GC_INDIR_PER_OBJ_BIAS))
+                       (((word)(-(signed_word)MARK_DESCR_OFFSET
+                                - GC_INDIR_PER_OBJ_BIAS))
                         | GC_DS_PER_OBJECT),
                        FALSE, TRUE);
       }

Index: libgc/mach_dep.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/mach_dep.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- libgc/mach_dep.c    30 Aug 2008 13:57:42 -0000      1.8
+++ libgc/mach_dep.c    22 Oct 2008 19:20:00 -0000      1.9
@@ -69,7 +69,7 @@
 # endif
 
 /* Routine to mark from registers that are preserved by the C compiler. */
-/* This must be ported to every new architecture.  It is noe optional, */
+/* This must be ported to every new architecture.  It is not optional, */
 /* and should not be used on platforms that are either UNIX-like, or   */
 /* require thread support.                                             */
 

Index: libgc/mallocx.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/mallocx.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- libgc/mallocx.c     30 Aug 2008 13:57:43 -0000      1.7
+++ libgc/mallocx.c     22 Oct 2008 19:20:00 -0000      1.8
@@ -393,7 +393,7 @@
            GC_release_mark_lock();
 #        endif
 
-         op = GC_build_fl(h, lw, ok -> ok_init, 0);
+         op = GC_build_fl(h, lw, (ok -> ok_init || GC_debugging_started), 0);
 #        ifdef PARALLEL_MARK
            *result = op;
            GC_acquire_mark_lock();

Index: libgc/mark_rts.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/mark_rts.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- libgc/mark_rts.c    30 Aug 2008 13:57:43 -0000      1.7
+++ libgc/mark_rts.c    22 Oct 2008 19:20:00 -0000      1.8
@@ -154,11 +154,11 @@
 
 
 /* Add [b,e) to the root set.  Adding the same interval a second time  */
-/* is a moderately fast noop, and hence benign.  We do not handle      */
+/* is a moderately fast no-op, and hence benign.  We do not handle     */
 /* different but overlapping intervals efficiently.  (We do handle     */
 /* them correctly.)                                                    */
 /* Tmp specifies that the interval may be deleted before               */
-/* reregistering dynamic libraries.                                    */ 
+/* re-registering dynamic libraries.                                   */ 
 void GC_add_roots_inner(ptr_t b, ptr_t e, GC_bool tmp)
 {
     struct roots * old;
@@ -562,7 +562,7 @@
      * Next push static data.  This must happen early on, since it's
      * not robust against mark stack overflow.
      */
-     /* Reregister dynamic libraries, in case one got added.           */
+     /* Re-register dynamic libraries, in case one got added.          */
      /* There is some argument for doing this as late as possible,     */
      /* especially on win32, where it can change asynchronously.       */
      /* In those cases, we do it here.  But on other platforms, it's   */

Index: libgc/misc.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/misc.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- libgc/misc.c        30 Aug 2008 13:57:43 -0000      1.10
+++ libgc/misc.c        22 Oct 2008 19:20:01 -0000      1.11
@@ -35,7 +35,7 @@
 # include <tchar.h>
 #endif
 
-#ifdef UNIX_LIKE
+#if defined(UNIX_LIKE) || defined(CYGWIN32)
 # include <fcntl.h>
 # include <sys/types.h>
 # include <sys/stat.h>
@@ -134,7 +134,7 @@
 /* but not too much bigger                                             */
 /* and so that size_map contains relatively few distinct entries       */
 /* This was originally stolen from Russ Atkinson's Cedar               */
-/* quantization alogrithm (but we precompute it).                      */ 
+/* quantization algorithm (but we precompute it).                      */ 
 STATIC void GC_init_size_map(void)
 {
     int i;
@@ -365,7 +365,7 @@
 
 
 /* Return the size of an object, given a pointer to its base.          */
-/* (For small obects this also happens to work from interior pointers, */
+/* (For small objects this also happens to work from interior pointers,        
*/
 /* but that shouldn't be relied upon.)                                 */
 GC_API size_t GC_size(void * p)
 {
@@ -501,7 +501,7 @@
       if (0 != GETENV("GC_PRINT_VERBOSE_STATS")) {
         GC_print_stats = VERBOSE;
       } 
-#     if defined(UNIX_LIKE)
+#     if defined(UNIX_LIKE) || defined(CYGWIN32)
         {
          char * file_name = GETENV("GC_LOG_FILE");
           if (0 != file_name) {

Index: libgc/mkinstalldirs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/mkinstalldirs,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- libgc/mkinstalldirs 31 Jul 2008 19:39:04 -0000      1.6
+++ libgc/mkinstalldirs 22 Oct 2008 19:20:01 -0000      1.7
@@ -4,7 +4,7 @@
 # Created: 1993-05-16
 # Public domain
 
-# $Id: mkinstalldirs,v 1.6 2008/07/31 19:39:04 ktreichel Exp $
+# $Id: mkinstalldirs,v 1.7 2008/10/22 19:20:01 ktreichel Exp $
 
 errstatus=0
 dirmode=""

Index: libgc/os_dep.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/os_dep.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- libgc/os_dep.c      30 Aug 2008 13:57:43 -0000      1.13
+++ libgc/os_dep.c      22 Oct 2008 19:20:01 -0000      1.14
@@ -63,7 +63,7 @@
 #   include <signal.h>
 # endif
 
-#ifdef UNIX_LIKE
+#if defined(UNIX_LIKE) || defined(CYGWIN32)
 # include <fcntl.h>
 #endif
 
@@ -166,7 +166,7 @@
 
 #ifdef THREADS
 /* Determine the length of a file by incrementally reading it into a   */
-/* This would be sily to use on a file supporting lseek, but Linux     */
+/* This would be silly to use on a file supporting lseek, but Linux    */
 /* /proc files usually do not.                                         */
 STATIC size_t GC_get_file_len(int f)
 {
@@ -438,7 +438,7 @@
     /* Some Linux distributions arrange to define __data_start.  Some  */
     /* define data_start as a weak symbol.  The latter is technically  */
     /* broken, since the user program may define data_start, in which  */
-    /* case we lose.  Nonetheless, we try both, prefering __data_start.        
*/
+    /* case we lose.  Nonetheless, we try both, preferring __data_start.*/
     /* We assume gcc-compatible pragmas.       */
 #   pragma weak __data_start
     extern int __data_start[];
@@ -626,7 +626,8 @@
  * With threads, GC_mark_roots needs to know how to do this.
  * Called with allocator lock held.
  */
-# if defined(MSWIN32) || defined(MSWINCE) || defined(CYGWIN32)
+# if defined(MSWIN32) || defined(MSWINCE) \
+       || (defined(CYGWIN32) && !defined(USE_MMAP))
 # define is_writable(prot) ((prot) == PAGE_READWRITE \
                            || (prot) == PAGE_WRITECOPY \
                            || (prot) == PAGE_EXECUTE_READWRITE \
@@ -800,7 +801,7 @@
 #       endif
     }
 
-    /* Return the first nonaddressible location > p (up) or    */
+    /* Return the first non-addressable location > p (up) or   */
     /* the smallest location q s.t. [q,p) is addressable (!up).        */
     /* We assume that p (up) or p-1 (!up) is addressable.      */
     /* Requires allocation lock.                               */
@@ -1004,7 +1005,7 @@
 
 #if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \
     && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) 
\
-    && !defined(CYGWIN32)
+    && (!defined(CYGWIN32) || defined(USE_MMAP))
 
 ptr_t GC_get_main_stack_base(void)
 {
@@ -1247,8 +1248,8 @@
   /* Unfortunately, we have to handle win32s very differently from NT,         
*/
   /* Since VirtualQuery has very different semantics.  In particular,  */
   /* under win32s a VirtualQuery call on an unmapped page returns an   */
-  /* invalid result.  Under NT, GC_register_data_segments is a noop and        
*/
-  /* all real work is done by GC_register_dynamic_libraries.  Under    */
+  /* invalid result.  Under NT, GC_register_data_segments is a no-op   */
+  /* and all real work is done by GC_register_dynamic_libraries.  Under        
*/
   /* win32s, we cannot find the data segments associated with dll's.   */
   /* We register the main data segment here.                           */
   GC_bool GC_no_win32_dlls = FALSE;     
@@ -2125,7 +2126,7 @@
 }
 
 /* Push the contents of an old object. We treat this as stack  */
-/* data only becasue that makes it robust against mark stack   */
+/* data only because that makes it robust against mark stack   */
 /* overflow.                                                   */
 PCR_ERes GC_push_old_obj(void *p, size_t size, PCR_Any data)
 {
@@ -2368,7 +2369,7 @@
 /* Is the HBLKSIZE sized page at h marked dirty in the local buffer?   */
 /* If the actual page size is different, this returns TRUE if any      */
 /* of the pages overlapping h are dirty.  This routine may err on the  */
-/* side of labelling pages as dirty (and this implementation does).    */
+/* side of labeling pages as dirty (and this implementation does).     */
 /*ARGSUSED*/
 GC_bool GC_page_was_dirty(struct hblk *h)
 {
@@ -2426,7 +2427,7 @@
 /* Is the HBLKSIZE sized page at h marked dirty in the local buffer?   */
 /* If the actual page size is different, this returns TRUE if any      */
 /* of the pages overlapping h are dirty.  This routine may err on the  */
-/* side of labelling pages as dirty (and this implementation does).    */
+/* side of labeling pages as dirty (and this implementation does).     */
 GC_bool GC_page_was_dirty(struct hblk *h)
 {
     register word index;
@@ -2622,13 +2623,13 @@
 #   include <errno.h>
 #   if defined(FREEBSD)
 #     define SIG_OK TRUE
-#     define CODE_OK (code == BUS_PAGE_FAULT)
+#     define CODE_OK (si -> si_code == BUS_PAGE_FAULT)
 #   elif defined(OSF1)
 #     define SIG_OK (sig == SIGSEGV)
-#     define CODE_OK (code == 2 /* experimentally determined */)
+#     define CODE_OK (si -> si_code == 2 /* experimentally determined */)
 #   elif defined(IRIX5)
 #     define SIG_OK (sig == SIGSEGV)
-#     define CODE_OK (code == EACCES)
+#     define CODE_OK (si -> si_code == EACCES)
 #   elif defined(HURD)
 #     define SIG_OK (sig == SIGBUS || sig == SIGSEGV)  
 #     define CODE_OK  TRUE
@@ -2645,9 +2646,6 @@
                     || (si -> si_code == BUS_UNKNOWN) \
                     || (si -> si_code == SEGV_UNKNOWN) \
                     || (si -> si_code == BUS_OBJERR)
-#   elif defined(FREEBSD)
-#     define SIG_OK (sig == SIGBUS)
-#     define CODE_OK (si -> si_code == BUS_PAGE_FAULT)
 #   elif defined(SUNOS5SIGS)
 #     define SIG_OK (sig == SIGSEGV)
 #     define CODE_OK (si -> si_code == SEGV_ACCERR)
@@ -3136,7 +3134,7 @@
  */
  
 /*
- * This implementaion assumes a Solaris 2.X like /proc pseudo-file-system
+ * This implementation assumes a Solaris 2.X like /proc pseudo-file-system
  * from which we can read page modified bits.  This facility is far from
  * optimal (e.g. we would like to get the info for only some of the
  * address space), but it avoids intercepting system calls.
@@ -3573,7 +3571,7 @@
 }
 
 /* All this SIGBUS code shouldn't be necessary. All protection faults should
-   be going throught the mach exception handler. However, it seems a SIGBUS is
+   be going through the mach exception handler. However, it seems a SIGBUS is
    occasionally sent for some unknown reason. Even more odd, it seems to be
    meaningless and safe to ignore. */
 #ifdef BROKEN_EXCEPTION_HANDLING
@@ -3608,7 +3606,7 @@
   exception_mask_t mask;
 
   if (GC_print_stats == VERBOSE)
-    GC_log_printf("Inititalizing mach/darwin mprotect virtual dirty bit "
+    GC_log_printf("Initializing mach/darwin mprotect virtual dirty bit "
                  "implementation\n");
 # ifdef BROKEN_EXCEPTION_HANDLING
     WARN("Enabling workarounds for various darwin "
@@ -3815,7 +3813,7 @@
       /* Ugh... just like the SIGBUS problem above, it seems we get a bogus
         KERN_PROTECTION_FAILURE every once and a while. We wait till we get
         a bunch in a row before doing anything about it. If a "real" fault
-        ever occurres it'll just keep faulting over and over and we'll hit
+        ever occurs it'll just keep faulting over and over and we'll hit
         the limit pretty quickly. */
 #     ifdef BROKEN_EXCEPTION_HANDLING
         static char *last_fault;

Index: libgc/pthread_stop_world.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/pthread_stop_world.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- libgc/pthread_stop_world.c  30 Aug 2008 13:57:43 -0000      1.6
+++ libgc/pthread_stop_world.c  22 Oct 2008 19:20:02 -0000      1.7
@@ -535,7 +535,7 @@
        ABORT("Cannot set SIG_THR_RESTART handler");
     }
 
-    /* Inititialize suspend_handler_mask. It excludes SIG_THR_RESTART. */
+    /* Initiialize suspend_handler_mask. It excludes SIG_THR_RESTART. */
       if (sigfillset(&suspend_handler_mask) != 0) ABORT("sigfillset() failed");
       GC_remove_allowed_signals(&suspend_handler_mask);
       if (sigdelset(&suspend_handler_mask, SIG_THR_RESTART) != 0)

Index: libgc/pthread_support.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/pthread_support.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- libgc/pthread_support.c     30 Aug 2008 13:57:43 -0000      1.9
+++ libgc/pthread_support.c     22 Oct 2008 19:20:03 -0000      1.10
@@ -21,7 +21,7 @@
  * guaranteed by the pthread standard, though it now does
  * very little of that.  It now also supports NPTL, and many
  * other Posix thread implementations.  We are trying to merge
- * all flavors of pthread dupport code into this file.
+ * all flavors of pthread support code into this file.
  */
  /* DG/UX ix86 support <address@hidden> */
 /*
@@ -1256,7 +1256,7 @@
 /* yield by calling pthread_mutex_lock(); it never makes sense to      */
 /* explicitly sleep.                                                   */
 
-#define LOCK_STATS
+/* #define LOCK_STATS */
 #ifdef LOCK_STATS
   unsigned long GC_spin_count = 0;
   unsigned long GC_block_count = 0;

Index: libgc/ptr_chck.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/ptr_chck.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- libgc/ptr_chck.c    30 Aug 2008 13:57:43 -0000      1.4
+++ libgc/ptr_chck.c    22 Oct 2008 19:20:04 -0000      1.5
@@ -255,10 +255,10 @@
 }
 
 
-GC_API void * GC_pre_incr (void **p, size_t how_much)
+GC_API void * GC_pre_incr (void **p, ptrdiff_t how_much)
 {
     void * initial = *p;
-    void * result = GC_same_obj((void *)((word)initial + how_much), initial);
+    void * result = GC_same_obj((void *)((ptr_t)initial + how_much), initial);
     
     if (!GC_all_interior_pointers) {
        (void) GC_is_valid_displacement(result);
@@ -266,10 +266,10 @@
     return (*p = result);
 }
 
-GC_API void * GC_post_incr (void **p, size_t how_much)
+GC_API void * GC_post_incr (void **p, ptrdiff_t how_much)
 {
     void * initial = *p;
-    void * result = GC_same_obj((void *)((word)initial + how_much), initial);
+    void * result = GC_same_obj((void *)((ptr_t)initial + how_much), initial);
  
     if (!GC_all_interior_pointers) {
        (void) GC_is_valid_displacement(result);

Index: libgc/reclaim.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/reclaim.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- libgc/reclaim.c     30 Aug 2008 13:57:43 -0000      1.7
+++ libgc/reclaim.c     22 Oct 2008 19:20:05 -0000      1.8
@@ -216,7 +216,7 @@
 
     GC_ASSERT(GC_find_header((ptr_t)hbp) == hhdr);
     GC_remove_protection(hbp, 1, (hhdr)->hb_descr == 0 /* Pointer-free? */);
-    if (init) {
+    if (init || GC_debugging_started) {
       result = GC_reclaim_clear(hbp, hhdr, sz, list, count);
     } else {
       GC_ASSERT((hhdr)->hb_descr == 0 /* Pointer-free block */);
@@ -247,7 +247,7 @@
        GC_reclaim_check(hbp, hhdr, sz);
     } else {
         *flh = GC_reclaim_generic(hbp, hhdr, sz,
-                                 (ok -> ok_init || GC_debugging_started),
+                                 ok -> ok_init,
                                  *flh, &GC_bytes_found);
     }
 }

Index: libgc/thread_local_alloc.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/thread_local_alloc.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/thread_local_alloc.c  30 Aug 2008 13:57:43 -0000      1.2
+++ libgc/thread_local_alloc.c  22 Oct 2008 19:20:06 -0000      1.3
@@ -225,8 +225,8 @@
 /* fundamental issue is that we may end up marking a free list, which  */
 /* has freelist links instead of "vtable" pointers.  That is usually   */
 /* OK, since the next object on the free list will be cleared, and     */
-/* will thus be interpreted as containg a zero descriptor.  That's fine        
*/
-/* if the object has not yet been initialized.  But there are          */
+/* will thus be interpreted as containing a zero descriptor.  That's   */
+/* fine if the object has not yet been initialized.  But there are     */
 /* interesting potential races.                                                
*/
 /* In the case of incremental collection, this seems hopeless, since   */
 /* the marker may run asynchronously, and may pick up the pointer to   */

Index: libgc/typd_mlc.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/typd_mlc.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- libgc/typd_mlc.c    30 Aug 2008 13:57:43 -0000      1.5
+++ libgc/typd_mlc.c    22 Oct 2008 19:20:07 -0000      1.6
@@ -28,7 +28,7 @@
  * must trace the complex_descriptor.
  *
  * Note that descriptors inside objects may appear cleared, if we encounter a
- * false refrence to an object on a free list.  In the GC_descr case, this
+ * false reference to an object on a free list.  In the GC_descr case, this
  * is OK, since a 0 descriptor corresponds to examining no fields.
  * In the complex_descriptor case, we explicitly check for that case.
  *

Index: libgc/win32_threads.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/win32_threads.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- libgc/win32_threads.c       30 Aug 2008 13:57:44 -0000      1.18
+++ libgc/win32_threads.c       22 Oct 2008 19:20:08 -0000      1.19
@@ -313,7 +313,7 @@
 {
   GC_vthread me;
 
-  /* The following should be a noop according to the win32     */
+  /* The following should be a no-op according to the win32    */
   /* documentation.  There is empirical evidence that it       */
   /* isn't.            - HB                                    */
 # if defined(MPROTECT_VDB)
@@ -328,7 +328,7 @@
   if (GC_win32_dll_threads) {
     int i;
     /* It appears to be unsafe to acquire a lock here, since this      */
-    /* code is apparently not preeemptible on some systems.            */
+    /* code is apparently not preemptible on some systems.             */
     /* (This is based on complaints, not on Microsoft's official       */
     /* documentation, which says this should perform "only simple      */
     /* initialization tasks".)                                         */
@@ -1212,7 +1212,6 @@
 
 int GC_pthread_join(pthread_t pthread_id, void **retval) {
     int result;
-    int i;
     GC_thread joinee;
 
 #   if DEBUG_CYGWIN_THREADS
@@ -1464,8 +1463,6 @@
     DWORD thread_id = GetCurrentThreadId();
     pthread_t pthread_id = pthread_self();
     GC_thread me;
-    GC_bool detached;
-    int i;
 
 #   if DEBUG_CYGWIN_THREADS
       GC_printf("thread 0x%x(0x%x) starting...\n",(int)pthread_id,
@@ -1579,7 +1576,7 @@
 #else /* !GC_PTHREADS */
 
 /*
- * We avoid acquiring locks here, since this doesn't seem to be preemptable.
+ * We avoid acquiring locks here, since this doesn't seem to be preemptible.
  * This may run with an uninitialized collector, in which case we don't do 
much.
  * This implies that no threads other than the main one should be created
  * with an uninitialized collector.  (The alternative of initializing

Index: libgc/cord/cord.am
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/cord/cord.am,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/cord/cord.am  31 Jul 2008 19:39:06 -0000      1.1
+++ libgc/cord/cord.am  22 Oct 2008 19:20:10 -0000      1.2
@@ -15,3 +15,5 @@
        cord/cordbscs.c cord/cordtest.c cord/de.c \
        cord/cordprnt.c cord/cordxtra.c cord/de_cmds.h \
        cord/de_win.h cord/de_win.c cord/de_win.RC cord/de_win.ICO
+
+pkginclude_HEADERS += include/cord.h

Index: libgc/doc/README
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/doc/README,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- libgc/doc/README    30 Aug 2008 13:57:44 -0000      1.10
+++ libgc/doc/README    22 Oct 2008 19:20:11 -0000      1.11
@@ -31,6 +31,11 @@
 collector.  (If you are concerned about such things, I recommend you look
 at the notice in config.guess or ltmain.sh.)
 
+The atomic_ops library contains some code that is covered by the GNU General
+Public License, but is not needed by, nor linked into the collector library.
+It is included here only becuase the atomic_ops distribution is, for
+simplicity, included in its entirety.
+
 This is version 7.2alpha1 of a conservative garbage collector for C and C++.
 
 You might find a more recent version of this at
@@ -202,21 +207,24 @@
 On other platforms, typically only the latter option is available, though
 with a different supplied Makefile.)
 
-  Typing "make test" nstead of "make" will automatically build the collector
-and then run setjmp_test and gctest. Setjmp_test will give you information
-about configuring the collector, which is useful primarily if you have
-a machine that's not already supported.  Gctest is a somewhat superficial
-test of collector functionality.  Failure is indicated by a core dump or
-a message to the effect that the collector is broken.  Gctest takes about 
-a second to two to run on reasonable 2007 vintage desktops.
-It may use up to about 30MB of memory.  (The
-multi-threaded version will use more.  64-bit versions may use more.)
-"Make test" will also, as its last step, attempt to build and test the
-"cord" string library.)
+  For the Makefile.direct-based process, typing "make test" instead of "make"
+will automatically build the collector and then run setjmp_test and gctest.
+Setjmp_test will give you information about configuring the collector, which is
+useful primarily if you have a machine that's not already supported.  Gctest is
+a somewhat superficial test of collector functionality.  Failure is indicated
+by a core dump or a message to the effect that the collector is broken.  Gctest
+takes about a second to two to run on reasonable 2007 vintage desktops.  It may
+use up to about 30MB of memory.  (The multi-threaded version will use more.
+64-bit versions may use more.) "Make test" will also, as its last step, attempt
+to build and test the "cord" string library.)
 
-  The Makefile will generate a library gc.a which you should link against.
+  Makefile.direct will generate a library gc.a which you should link against.
 Typing "make cords" will add the cord library to gc.a.
-Note that this requires an ANSI C compiler.
+
+  The GNU style build process understands the usual targets.  "Make check"
+runs a number of tests.  "Make install" installs at least libgc, and libcord.
+Try "./configure --help" to see the configuration options.  It is currently
+not possible to exercise all combinations of build options this way.
 
   It is suggested that if you need to replace a piece of the collector
 (e.g. GC_mark_rts.c) you simply list your version ahead of gc.a on the

Index: libgc/doc/README.DGUX386
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/doc/README.DGUX386,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/doc/README.DGUX386    8 Apr 2002 23:36:50 -0000       1.1
+++ libgc/doc/README.DGUX386    22 Oct 2008 19:20:12 -0000      1.2
@@ -23,7 +23,7 @@
      to build only the static version of libgc.
   
      To enable debugging messages please do:
-     1) Add the "--enable-full-debug" flag during configuration. 
+     1) Add the "--enable-gc-debug" flag during configuration. 
      2) Edit the file linux-threads.c and uncommnect the line:
 
      /* #define DEBUG_THREADS 1 */ to ---> 

Index: libgc/doc/README.autoconf
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/doc/README.autoconf,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -b -r1.1.1.1 -r1.2
--- libgc/doc/README.autoconf   9 Nov 2001 02:22:11 -0000       1.1.1.1
+++ libgc/doc/README.autoconf   22 Oct 2008 19:20:12 -0000      1.2
@@ -47,7 +47,9 @@
                           [same as prefix]
   --enable-threads=TYPE   choose threading package
   --enable-parallel-mark  parallelize marking and free list construction
-  --enable-full-debug  include full support for pointer backtracing etc.
+  --enable-gc-debug (--enable-full-debug before about 7.0)
+                         include full support for pointer backtracing etc.
+
 
 Unless --prefix is set (or --exec-prefix or one of the more obscure options),
 make install will install libgc.a and libgc.so in /usr/local/bin, which

Index: libgc/doc/debugging.html
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/doc/debugging.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- libgc/doc/debugging.html    26 May 2004 22:32:56 -0000      1.4
+++ libgc/doc/debugging.html    22 Oct 2008 19:20:13 -0000      1.5
@@ -1,5 +1,7 @@
-<HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en-us">
 <HEAD>
+<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII" >
 <TITLE>Debugging Garbage Collector Related Problems</title>
 </head>
 <BODY>
@@ -81,8 +83,8 @@
     size_t old_size = GC_size(p);
     void * result;
  
-    if (new_size <= 10000) return(GC_realloc(p, new_size));
-    if (new_size <= old_size) return(p);
+    if (new_size &lt;= 10000) return(GC_realloc(p, new_size));
+    if (new_size &lt;= old_size) return(p);
     result = GC_malloc_ignore_off_page(new_size);
     if (result == 0) return(0);
     memcpy(result,p,old_size);
@@ -186,7 +188,8 @@
 to allocate large objects.  (See <TT>gc.h</tt> and above for details.
 Large means &gt; 100K in most environments.)
 <LI> If your heap size is larger than 100MB or so, build the collector with
--DLARGE_CONFIG.  This allows the collector to keep more precise black-list
+<TT>-DLARGE_CONFIG</tt>.
+This allows the collector to keep more precise black-list
 information.
 <LI> If you are using heaps close to, or larger than, a gigabyte on a 32-bit
 machine, you may want to consider moving to a platform with 64-bit pointers.

Index: libgc/doc/gcinterface.html
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/doc/gcinterface.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- libgc/doc/gcinterface.html  31 Jul 2008 19:39:07 -0000      1.3
+++ libgc/doc/gcinterface.html  22 Oct 2008 19:20:13 -0000      1.4
@@ -1,5 +1,7 @@
-<!DOCTYPE HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en-us">
 <HEAD>
+<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII" >
 <TITLE>Garbage Collector Interface</TITLE>
 </HEAD>
 <BODY>
@@ -152,8 +154,15 @@
 </dl>
 <P>
 If you are concerned with multiprocessor performance and scalability,
-you should consider enabling and using thread local allocation (<I>e.g.</i>
-<TT>GC_LOCAL_MALLOC</tt>, see <TT>gc_local_alloc.h</tt>.  If your platform
+you should consider enabling and using thread local allocation.
+For GC versions before 7.0, use <I>e.g.</i>
+<TT>GC_LOCAL_MALLOC</tt> and see <TT>gc_local_alloc.h</tt>;
+for later versions enabling thread-local allocations when the collector
+library is built changes the
+implementation of <TT>GC_MALLOC</tt>, so the client doesn't need to
+change.
+<P>
+If your platform
 supports it, you should build the collector with parallel marking support
 (<TT>-DPARALLEL_MARK</tt>, or <TT>--enable-parallel-mark</tt>).
 <P>

Index: libgc/doc/leak.html
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/doc/leak.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/doc/leak.html 31 Jul 2008 19:39:07 -0000      1.2
+++ libgc/doc/leak.html 22 Oct 2008 19:20:13 -0000      1.3
@@ -1,5 +1,7 @@
-<HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en-us">
 <HEAD>
+<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII" >
 <TITLE>Using the Garbage Collector as Leak Detector</title>
 </head>
 <BODY>
@@ -27,7 +29,8 @@
 features:
 <OL>
 <LI> Leak detection mode can be initiated at run-time by
-setting GC_find_leak instead of building the collector with FIND_LEAK
+setting <TT>GC_find_leak</tt> instead of building the
+collector with <TT>FIND_LEAK</tt>
 defined.  This variable should be set to a nonzero value
 at program startup.
 <LI> Leaked objects should be reported and then correctly garbage collected.
@@ -38,7 +41,7 @@
 <P>
 To use the collector as a leak detector, follow the following steps:
 <OL>
-<LI> Build the collector with -DFIND_LEAK.  Otherwise use default
+<LI> Build the collector with <TT>-DFIND_LEAK</tt>.  Otherwise use default
 build options.
 <LI> Change the program so that all allocation and deallocation goes
 through the garbage collector.
@@ -92,9 +95,9 @@
 #define CHECK_LEAKS() GC_gcollect()
 </pre>
 <P>
-Assume the collector has been built with -DFIND_LEAK.  (For very
-new versions of the collector, we could instead add the statement
-<TT>GC_find_leak = 1</tt> as the first statement in <TT>main</tt>.
+Assume the collector has been built with <TT>-DFIND_LEAK</tt>.  (For
+newer versions of the collector, we could instead add the statement
+<TT>GC_find_leak = 1</tt> as the first statement in <TT>main()</tt>.
 <P>
 The program to be tested for leaks can then look like:
 <PRE>
@@ -105,13 +108,13 @@
     int i;
     /* GC_find_leak = 1; for new collector versions not        */
     /* compiled with -DFIND_LEAK.                              */
-    for (i = 0; i < 10; ++i) {
+    for (i = 0; i &lt; 10; ++i) {
        p[i] = malloc(sizeof(int)+i);
     }
-    for (i = 1; i < 10; ++i) {
+    for (i = 1; i &lt; 10; ++i) {
        free(p[i]);
     }
-    for (i = 0; i < 9; ++i) {
+    for (i = 0; i &lt; 9; ++i) {
        p[i] = malloc(sizeof(int)+i);
     }
     CHECK_LEAKS();
@@ -165,29 +168,34 @@
 a very recent (7.0alpha7+) collector version on Linux.</i>
 On most platforms this does not
 work at all for multithreaded programs.
-<LI> If possible, ensure that the addr2line program is installed in
-/usr/bin.  (It comes with RedHat Linux.)
-<LI> If possible, compile a.out with full debug information.
+<LI> If possible, ensure that the <TT>addr2line</tt> program is installed in
+<TT>/usr/bin</tt>.  (It comes with most Linux distributions.)
+<LI> If possible, compile your program, which we'll call <TT>a.out</tt>,
+with full debug information.
 This will improve the quality of the leak reports.  With this approach, it is
-no longer necessary to call GC_ routines explicitly, though that can also
+no longer necessary to call <TT>GC_</tt> routines explicitly,
+though that can also
 improve the quality of the leak reports.
 <LI> Build the collector and install it in directory <I>foo</i> as follows:
 <UL>
-<LI> <TT>configure --prefix=<I>foo</i> --enable-full-debug 
--enable-redirect-malloc
+<LI> <TT>configure --prefix=<I>foo</i> --enable-gc-debug 
--enable-redirect-malloc
 --disable-threads</tt>
 <LI> <TT>make</tt>
 <LI> <TT>make install</tt>
 </ul>
-With a very recent collector on Linux, it may be safe to omit the 
<TT>--disable-threads</tt>.
+With a very recent collector on Linux, it may sometimes be safe to omit
+the <TT>--disable-threads</tt>.  But the combination of thread support
+and <TT>malloc</tt> replacement is not yet rock solid.
 <LI> Set environment variables as follows:
 <UL>
-<LI> LD_PRELOAD=<I>foo</i>/lib/libgc.so
-<LI> GC_FIND_LEAK
-<LI> You may also want to set GC_PRINT_STATS (to confirm that the collector
-is running) and/or GC_LOOP_ON_ABORT (to facilitate debugging from another
+<LI> <TT>LD_PRELOAD=</tt><I>foo</i><TT>/lib/libgc.so</tt>
+<LI> <TT>GC_FIND_LEAK</tt>
+<LI> You may also want to set <TT>GC_PRINT_STATS</tt>
+(to confirm that the collector is running) and/or
+<TT>GC_LOOP_ON_ABORT</tt> (to facilitate debugging from another
 window if something goes wrong).
-</ul
-<LI> Simply run a.out as you normally would.  Note that if you run anything
+</ul>
+<LI> Simply run <TT>a.out</tt> as you normally would.  Note that if you run 
anything
 else (<I>e.g.</i> your editor) with those environment variables set,
 it will also be leak tested.  This may or may not be useful and/or
 embarrassing.  It can generate

Index: libgc/doc/simple_example.html
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/doc/simple_example.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/doc/simple_example.html       26 May 2004 22:47:11 -0000      1.1
+++ libgc/doc/simple_example.html       22 Oct 2008 19:20:15 -0000      1.2
@@ -1,5 +1,7 @@
-<HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en-us">
 <HEAD>
+<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII" >
 <TITLE>Using the Garbage Collector: A simple example</title>
 </head>
 <BODY>
@@ -13,8 +15,8 @@
 If you haven't already so, unpack the collector and enter
 the newly created directory with
 <PRE>
-tar xvfz gc<version>.tar.gz
-cd gc<version>
+tar xvfz gc&lt;version&gt;.tar.gz
+cd gc&lt;version&gt;
 </pre>
 <P>
 You can configure, build, and install the collector in a private
@@ -27,8 +29,8 @@
 </pre>
 Here the "<TT>make check</tt>" command is optional, but highly recommended.
 It runs a basic correctness test which usually takes well under a minute.
+<H3><FONT COLOR=green>Other platforms</font></h3>
 <FONT COLOR=green>
-<H3>Other platforms</h3>
 On non-Unix, non-Linux platforms, the collector is usually built by copying
 the appropriate makefile (see the platform-specific README in doc/README.xxx
 in the distribution) to the file "Makefile" (overwriting the copy of
@@ -36,24 +38,34 @@
 (or "nmake" or ...).  This builds the library in the source tree.  You may
 want to move it and the files in the include directory to a more convenient
 place.
+</font>
 <P>
+<FONT COLOR=green>
 If you use a makefile that does not require running a configure script,
 you should first look at the makefile, and adjust any options that are
 documented there.
+</font>
 <P>
+<FONT COLOR=green>
 If your platform provides a "make" utility, that is generally preferred
 to platform- and compiler- dependent "project" files.  (At least that is the
 strong preference of the would-be maintainer of those project files.)
-<H3>Threads</h3>
+</font>
+<H3><FONT COLOR=green>Threads</font></h3>
+<FONT COLOR=green>
 If you need thread support, configure the collector with
-<PRE>
+</font>
+<PRE style="color:green">
 --enable-threads=posix --enable-thread-local-alloc --enable-parallel-mark
 </pre>
+<FONT COLOR=green>
 instead of
 <TT>--disable-threads</tt>
 If your target is a real old-fashioned uniprocessor (no "hyperthreading",
 etc.) you will want to omit <TT>--enable-parallel-mark</tt>.
-<H3>C++</h3>
+</font>
+<H3><FONT COLOR=green>C++</font></h3>
+<FONT COLOR=green>
 You will need to include the C++ support, which unfortunately tends to
 be among the least portable parts of the collector, since it seems
 to rely on some corner cases of the language.  On Linux, it
@@ -93,7 +105,7 @@
   int i;
 
   GC_INIT();   /* Optional on Linux/X86; see below.  */
-  for (i = 0; i < 10000000; ++i)
+  for (i = 0; i &lt; 10000000; ++i)
    {
      int **p = (int **) GC_MALLOC(sizeof(int *));
      int *q = (int *) GC_MALLOC_ATOMIC(sizeof(int));
@@ -105,55 +117,75 @@
   return 0;
 }
 </pre>
+<H3><FONT COLOR=green>Interaction with the system malloc</font></h3>
 <FONT COLOR=green>
-<H3>Interaction with the system malloc</h3>
 It is usually best not to mix garbage-collected allocation with the system
 <TT>malloc-free</tt>.  If you do, you need to be careful not to store
 pointers to the garbage-collected heap in memory allocated with the system
 <TT>malloc</tt>.
-<H3>Other Platforms</h3>
+</font>
+
+<H3><FONT COLOR=green>Other Platforms</font></h3>
+<FONT COLOR=green>
 On some other platforms it is necessary to call <TT>GC_INIT()</tt> from the 
main program,
 which is presumed to be part of the main executable, not a dynamic library.
 This can never hurt, and is thus generally good practice.
+</font>
 
-<H3>Threads</h3>
+<H3><FONT COLOR=green>Threads</font></h3>
+<FONT COLOR=green>
 For a multithreaded program some more rules apply:
+</font>
 <UL>
 <LI>
+<FONT COLOR=green>
 Files that either allocate through the GC <I>or make thread-related calls</i>
 should first define the macro <TT>GC_THREADS</tt>, and then
 include <TT>"gc.h"</tt>.  On some platforms this will redefine some
 threads primitives, e.g. to let the collector keep track of thread creation.
+</font>
 <LI>
-To take advantage of fast thread-local allocation, use the following instead
+<FONT COLOR=green>
+To take advantage of fast thread-local allocation in versions before 7.0,
+use the following instead
 of including <TT>gc.h</tt>:
-<PRE>
+</font>
+<PRE style="color:green">
 #define GC_REDIRECT_TO_LOCAL
 #include "gc_local_alloc.h"
 </pre>
+<FONT COLOR=green>
 This will cause GC_MALLOC and GC_MALLOC_ATOMIC to keep per-thread allocation
 caches, and greatly reduce the number of lock acquisitions during allocation.
+For versions after 7.0, this happens implicitly if the collector is built
+with thread-local allocation enabled.
+</font>
 </ul>
 
-<H3>C++</h3>
+<H3><FONT COLOR=green>C++</font></h3>
+<FONT COLOR=green>
 In the case of C++, you need to be especially careful not to store pointers
 to the garbage-collected heap in areas that are not traced by the collector.
 The collector includes some <A HREF="gcinterface.html">alternate interfaces</a>
 to make that easier.
+</font>
 
-<H3>Debugging</h3>
+<H3><FONT COLOR=green>Debugging</font></h3>
+<FONT COLOR=green>
 Additional debug checks can be performed by defining <TT>GC_DEBUG</tt> before
 including <TT>gc.h</tt>.  Additional options are available if the collector
-is also built with <TT>--enable-full_debug</tt> and all allocations are
+is also built with <TT>--enable-gc-debug</tt> (<TT>--enable-full-debug</tt> in
+some older versions) and all allocations are
 performed with <TT>GC_DEBUG</tt> defined.
+</font>
 
-<H3>What if I can't rewrite/recompile my program?</h3>
+<H3><FONT COLOR=green>What if I can't rewrite/recompile my program?</font></h3>
+<FONT COLOR=green>
 You may be able to build the collector with <TT>--enable-redirect-malloc</tt>
 and set the <TT>LD_PRELOAD</tt> environment variable to point to the resulting
 library, thus replacing the standard <TT>malloc</tt> with its garbage-collected
 counterpart.  This is rather platform dependent.  See the
 <A HREF="leak.html">leak detection documentation</a> for some more details.
-
 </font>
 
 <H2>Compiling and linking</h2>
@@ -171,10 +203,8 @@
 used instead, provided we arranged for the dynamic loader to find
 it, e.g. by setting <TT>LD_LIBRARY_PATH</tt>.
 
+<H3><FONT COLOR=green>Threads</font></h3>
 <FONT COLOR=green>
-
-<H3>Threads</h3>
-
 On pthread platforms, you will of course also have to link with
 <TT>-lpthread</tt>,
 and compile with any thread-safety options required by your compiler.
@@ -183,7 +213,6 @@
 Looking at threadlibs.c in the GC build directory
 should give you the appropriate
 list if a plain <TT>-lpthread</tt> doesn't work.
-
 </font>
 
 <H2>Running the executable</h2>

Index: libgc/include/gc.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/gc.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- libgc/include/gc.h  30 Aug 2008 13:57:44 -0000      1.17
+++ libgc/include/gc.h  22 Oct 2008 19:20:16 -0000      1.18
@@ -129,7 +129,7 @@
 
 GC_API int GC_java_finalization;
                        /* Mark objects reachable from finalizable      */
-                       /* objects in a separate postpass.  This makes  */
+                       /* objects in a separate post-pass.  This makes */
                        /* it a bit safer to use non-topologically-     */
                        /* ordered finalization.  Default value is      */
                        /* determined by JAVA_FINALIZATION macro.       */
@@ -164,7 +164,7 @@
 GC_API int GC_set_dont_expand(int);
 
 GC_API int GC_use_entire_heap;
-               /* Causes the nonincremental collector to use the       */
+               /* Causes the non-incremental collector to use the      */
                /* entire heap before collecting.  This was the only    */
                /* option for GC versions < 5.0.  This sometimes        */
                /* results in more large block fragmentation, since     */
@@ -265,7 +265,7 @@
 /*
  * general purpose allocation routines, with roughly malloc calling conv.
  * The atomic versions promise that no relevant pointers are contained
- * in the object.  The nonatomic versions guarantee that the new object
+ * in the object.  The non-atomic versions guarantee that the new object
  * is cleared.  GC_malloc_stubborn promises that no changes to the object
  * will occur after GC_end_stubborn_change has been called on the
  * result of GC_malloc_stubborn. GC_malloc_uncollectable allocates an object
@@ -301,9 +301,9 @@
  * The collector is implicitly informed of coming change when such
  * an object is first allocated.  The following routines inform the
  * collector that an object will no longer be changed, or that it will
- * once again be changed.  Only nonNIL pointer stores into the object
+ * once again be changed.  Only non-NULL pointer stores into the object
  * are considered to be changes.  The argument to GC_end_stubborn_change
- * must be exacly the value returned by GC_malloc_stubborn or passed to
+ * must be exactly the value returned by GC_malloc_stubborn or passed to
  * GC_change_stubborn.  (In the second case it may be an interior pointer
  * within 512 bytes of the beginning of the objects.)
  * There is a performance penalty for allowing more than
@@ -420,7 +420,7 @@
 /* ineffective.                                                                
*/
 GC_API void GC_disable(void);
 
-/* Reenable garbage collection.  GC_disable() and GC_enable() calls    */
+/* Re-enable garbage collection.  GC_disable() and GC_enable() calls   */
 /* nest.  Garbage collection is enabled if the number of calls to both */
 /* both functions is equal.                                            */
 GC_API void GC_enable(void);
@@ -428,7 +428,7 @@
 /* Enable incremental/generational collection. */
 /* Not advisable unless dirty bits are                 */
 /* available or most heap objects are          */
-/* pointerfree(atomic) or immutable.           */
+/* pointer-free (atomic) or immutable.         */
 /* Don't use in leak finding mode.             */
 /* Ignored if GC_dont_gc is true.              */
 /* Only the generational piece of this is      */
@@ -627,7 +627,7 @@
 #   define GC_REGISTER_DISPLACEMENT(n) GC_register_displacement(n)
 # endif
 /* The following are included because they are often convenient, and   */
-/* reduce the chance for a misspecifed size argument.  But calls may   */
+/* reduce the chance for a misspecified size argument.  But calls may  */
 /* expand to something syntactically incorrect if t is a complicated   */
 /* type expression.                                                    */
 # define GC_NEW(t) (t *)GC_MALLOC(sizeof (t))
@@ -677,7 +677,7 @@
        /* a signal, the object may be left with no             */
        /* finalization, even if neither the old nor new        */
        /* finalizer were NULL.                                 */
-       /* Obj should be the nonNULL starting address of an     */
+       /* Obj should be the non-NULL starting address of an    */
        /* object allocated by GC_malloc or friends.            */
        /* Note that any garbage collectable object referenced  */
        /* by cd will be considered accessible until the        */
@@ -781,7 +781,7 @@
        /* cleared.                                             */
        /* This can be used to implement certain types of       */
        /* weak pointers.  Note however that this generally     */
-       /* requires that thje allocation lock is held (see      */
+       /* requires that the allocation lock is held (see       */
        /* GC_call_with_allock_lock() below) when the disguised */
        /* pointer is accessed.  Otherwise a strong pointer     */
        /* could be recreated between the time the collector    */
@@ -927,8 +927,8 @@
 /* the second argument is in units of bytes, not multiples of the      */
 /* object size.  This should either be invoked from a macro, or the    */
 /* call should be automatically generated.                             */
-GC_API void * GC_pre_incr (void * *p, size_t how_much);
-GC_API void * GC_post_incr (void * *p, size_t how_much);
+GC_API void * GC_pre_incr (void * *p, ptrdiff_t how_much);
+GC_API void * GC_post_incr (void * *p, ptrdiff_t how_much);
 
 /* Check that p is visible                                             */
 /* to the collector as a possibly pointer containing location.         */
@@ -954,37 +954,39 @@
 
 /* Safer, but slow, pointer addition.  Probably useful mainly with     */
 /* a preprocessor.  Useful only for heap pointers.                     */
-#ifdef GC_DEBUG
+/* Only the macros without trailing digits are meant to be used                
*/
+/* by clients.  These are designed to model the available C pointer    */
+/* arithmetic expressions.                                             */
+/* Even then, these are probably more useful as                        */
+/* documentation than as part of the API.                              */
+/* Note that GC_PTR_ADD evaluates the first argument more than once.   */
+#if defined(GC_DEBUG) && defined(__GNUC__)
 #   define GC_PTR_ADD3(x, n, type_of_result) \
        ((type_of_result)GC_same_obj((x)+(n), (x)))
 #   define GC_PRE_INCR3(x, n, type_of_result) \
-       ((type_of_result)GC_pre_incr(&(x), (n)*sizeof(*x))
-#   define GC_POST_INCR2(x, type_of_result) \
-       ((type_of_result)GC_post_incr(&(x), sizeof(*x))
-#   ifdef __GNUC__
+       ((type_of_result)GC_pre_incr((void **)(&(x)), (n)*sizeof(*x)))
+#   define GC_POST_INCR3(x, n, type_of_result) \
+       ((type_of_result)GC_post_incr((void **)(&(x)), (n)*sizeof(*x)))
 #       define GC_PTR_ADD(x, n) \
            GC_PTR_ADD3(x, n, typeof(x))
 #       define GC_PRE_INCR(x, n) \
            GC_PRE_INCR3(x, n, typeof(x))
-#       define GC_POST_INCR(x, n) \
-           GC_POST_INCR3(x, typeof(x))
-#   else
+#   define GC_POST_INCR(x) \
+           GC_POST_INCR3(x, 1, typeof(x))
+#   define GC_POST_DECR(x) \
+           GC_POST_INCR3(x, -1, typeof(x))
+#else  /* !GC_DEBUG || !__GNUC__ */
        /* We can't do this right without typeof, which ANSI    */
-       /* decided was not sufficiently useful.  Repeatedly     */
-       /* mentioning the arguments seems too dangerous to be   */
-       /* useful.  So does not casting the result.             */
-#      define GC_PTR_ADD(x, n) ((x)+(n))
-#   endif
-#else  /* !GC_DEBUG */
-#   define GC_PTR_ADD3(x, n, type_of_result) ((x)+(n))
+       /* decided was not sufficiently useful.  Without it     */
+       /* we resort to the non-debug version.                  */
+       /* FIXME: This should eventually support C++0x decltype */
 #   define GC_PTR_ADD(x, n) ((x)+(n))
-#   define GC_PRE_INCR3(x, n, type_of_result) ((x) += (n))
 #   define GC_PRE_INCR(x, n) ((x) += (n))
-#   define GC_POST_INCR2(x, n, type_of_result) ((x)++)
-#   define GC_POST_INCR(x, n) ((x)++)
+#   define GC_POST_INCR(x) ((x)++)
+#   define GC_POST_DECR(x) ((x)--)
 #endif
 
-/* Safer assignment of a pointer to a nonstack location.       */
+/* Safer assignment of a pointer to a non-stack location.      */
 #ifdef GC_DEBUG
 #   define GC_PTR_STORE(p, q) \
        (*(void **)GC_is_visible(p) = GC_is_valid_displacement(q))

Index: libgc/include/gc_allocator.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/gc_allocator.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- libgc/include/gc_allocator.h        31 Jul 2008 19:39:08 -0000      1.5
+++ libgc/include/gc_allocator.h        22 Oct 2008 19:20:17 -0000      1.6
@@ -26,7 +26,7 @@
  * This implements standard-conforming allocators that interact with
  * the garbage collector.  Gc_alloctor<T> allocates garbage-collectable
  * objects of type T.  Traceable_allocator<T> allocates objects that
- * are not temselves garbage collected, but are scanned by the
+ * are not themselves garbage collected, but are scanned by the
  * collector for pointers to collectable objects.  Traceable_alloc
  * should be used for explicitly managed STL containers that may
  * point to collectable objects.
@@ -49,7 +49,7 @@
 #endif
 
 /* First some helpers to allow us to dispatch on whether or not a type
- * is known to be pointerfree.
+ * is known to be pointer-free.
  * These are private, except that the client may invoke the
  * GC_DECLARE_PTRFREE macro.
  */
@@ -79,8 +79,8 @@
 GC_DECLARE_PTRFREE(long double);
 /* The client may want to add others.  */
 
-// In the following GC_Tp is GC_true_type iff we are allocating a
-// pointerfree object.
+// In the following GC_Tp is GC_true_type if we are allocating a
+// pointer-free object.
 template <class GC_Tp>
 inline void * GC_selective_alloc(size_t n, GC_Tp) {
     return GC_MALLOC(n);

Index: libgc/include/gc_config_macros.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/gc_config_macros.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- libgc/include/gc_config_macros.h    30 Aug 2008 13:57:44 -0000      1.6
+++ libgc/include/gc_config_macros.h    22 Oct 2008 19:20:18 -0000      1.7
@@ -140,7 +140,7 @@
       /* as well?                                                  */
 #   endif
 # else /* ! _WIN32_WCE */
-/* Yet more kluges for WinCE */
+/* Yet more kludges for WinCE */
 #   include <stdlib.h>         /* size_t is defined here */
     typedef long ptrdiff_t;    /* ptrdiff_t is not defined */
 # endif

Index: libgc/include/gc_mark.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/gc_mark.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- libgc/include/gc_mark.h     30 Aug 2008 13:57:44 -0000      1.5
+++ libgc/include/gc_mark.h     22 Oct 2008 19:20:18 -0000      1.6
@@ -32,7 +32,7 @@
 /* A client supplied mark procedure.  Returns new mark stack pointer.  */
 /* Primary effect should be to push new entries on the mark stack.     */
 /* Mark stack pointer values are passed and returned explicitly.       */
-/* Global variables decribing mark stack are not necessarily valid.    */
+/* Global variables describing mark stack are not necessarily valid.   */
 /* (This usually saves a few cycles by keeping things in registers.)   */
 /* Assumed to scan about GC_PROC_BYTES on average.  If it needs to do  */
 /* much more work than that, it should do it in smaller pieces by      */
@@ -74,7 +74,7 @@
 #define GC_DS_LENGTH 0 /* The entire word is a length in bytes that    */
                        /* must be a multiple of 4.                     */
 #define GC_DS_BITMAP 1 /* 30 (62) bits are a bitmap describing pointer */
-                       /* fields.  The msb is 1 iff the first word     */
+                       /* fields.  The msb is 1 if the first word      */
                        /* is a pointer.                                */
                        /* (This unconventional ordering sometimes      */
                        /* makes the marker slightly faster.)           */
@@ -99,7 +99,7 @@
                        /* object contains a type descriptor in the     */
                        /* first word.                                  */
                        /* Note that in multithreaded environments      */
-                       /* per object descriptors maust be located in   */
+                       /* per object descriptors must be located in    */
                        /* either the first two or last two words of    */
                        /* the object, since only those are guaranteed  */
                        /* to be cleared while the allocation lock is   */

Index: libgc/include/gc_typed.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/gc_typed.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- libgc/include/gc_typed.h    31 Jul 2008 19:39:08 -0000      1.4
+++ libgc/include/gc_typed.h    22 Oct 2008 19:20:19 -0000      1.5
@@ -87,7 +87,7 @@
                                         GC_descr d);
        /* Allocate an array of nelements elements, each of the */
        /* given size, and with the given descriptor.           */
-       /* The elemnt size must be a multiple of the byte       */
+       /* The element size must be a multiple of the byte      */
        /* alignment required for pointers.  E.g. on a 32-bit   */
        /* machine with 16-bit aligned pointers, size_in_bytes  */
        /* must be a multiple of 2.                             */

Index: libgc/include/javaxfc.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/javaxfc.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- libgc/include/javaxfc.h     30 Aug 2008 13:57:44 -0000      1.3
+++ libgc/include/javaxfc.h     22 Oct 2008 19:20:19 -0000      1.4
@@ -11,7 +11,7 @@
  * This is needed for strict compliance with the Java standard, 
  * which can make the runtime guarantee that all finalizers are run.
  * This is problematic for several reasons:
- * 1) It means that finalizers, and all methods calle by them,
+ * 1) It means that finalizers, and all methods called by them,
  *    must be prepared to deal with objects that have been finalized in
  *    spite of the fact that they are still referenced by statically
  *    allocated pointer variables.

Index: libgc/include/new_gc_alloc.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/new_gc_alloc.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- libgc/include/new_gc_alloc.h        31 Jul 2008 19:39:08 -0000      1.6
+++ libgc/include/new_gc_alloc.h        22 Oct 2008 19:20:20 -0000      1.7
@@ -133,7 +133,7 @@
   // real one must be updated with a procedure call.
   static size_t GC_bytes_recently_allocd;
 
-  // Same for uncollectable mmory.  Not yet reflected in either
+  // Same for uncollectable memory.  Not yet reflected in either
   // GC_bytes_recently_allocd or GC_non_gc_bytes.
   static size_t GC_uncollectable_bytes_recently_allocd;
 
@@ -183,7 +183,7 @@
 
 // A fast, single-threaded, garbage-collected allocator
 // We assume the first word will be immediately overwritten.
-// In this version, deallocation is not a noop, and explicit
+// In this version, deallocation is not a no-op, and explicit
 // deallocation is likely to help performance.
 template <int dummy>
 class single_client_gc_alloc_template {
@@ -347,7 +347,7 @@
 typedef traceable_alloc_template < 0 > traceable_alloc;
 
 // We want to specialize simple_alloc so that it does the right thing
-// for all pointerfree types.  At the moment there is no portable way to
+// for all pointer-free types.  At the moment there is no portable way to
 // even approximate that.  The following approximation should work for
 // SGI compilers, and recent versions of g++.
 

Index: libgc/include/private/dbg_mlc.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/private/dbg_mlc.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- libgc/include/private/dbg_mlc.h     31 Jul 2008 19:39:08 -0000      1.5
+++ libgc/include/private/dbg_mlc.h     22 Oct 2008 19:20:20 -0000      1.6
@@ -110,7 +110,7 @@
       word oh_sf;                      /* start flag */
 #   endif /* SHORT_DBG_HDRS */
 } oh;
-/* The size of the above structure is assumed not to dealign things,   */
+/* The size of the above structure is assumed not to de-align things,  */
 /* and to be a multiple of the word length.                            */
 
 #ifdef SHORT_DBG_HDRS

Index: libgc/include/private/gc_locks.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/private/gc_locks.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- libgc/include/private/gc_locks.h    31 Jul 2008 19:39:09 -0000      1.8
+++ libgc/include/private/gc_locks.h    22 Oct 2008 19:20:20 -0000      1.9
@@ -187,7 +187,7 @@
 #   define I_HOLD_LOCK() TRUE
 #   define I_DONT_HOLD_LOCK() TRUE
                        /* Used only in positive assertions or to test whether  
*/
-                       /* we still need to acaquire the lock.  TRUE works in   
*/
+                       /* we still need to acquire the lock.  TRUE works in    
*/
                        /* either case.                                         
*/
 # endif /* !THREADS */
 

Index: libgc/include/private/gc_pmark.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/private/gc_pmark.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- libgc/include/private/gc_pmark.h    30 Aug 2008 13:57:45 -0000      1.7
+++ libgc/include/private/gc_pmark.h    22 Oct 2008 19:20:21 -0000      1.8
@@ -104,7 +104,7 @@
      * also less performant, way.
      */
     void GC_do_parallel_mark();
-               /* inititate parallel marking.  */
+               /* initiate parallel marking.   */
 
     extern GC_bool GC_help_wanted;     /* Protected by mark lock       */
     extern unsigned GC_helper_count;   /* Number of running helpers.   */
@@ -172,10 +172,10 @@
       /* For our uses, that's benign:                                       */
 #     define OR_WORD_EXIT_IF_SET(addr, bits, exit_label) \
         { \
-          if (!(*(addr) & (mask))) { \
-            AO_or((AO_t *)(addr), (mask); \
+          if (!(*(addr) & (bits))) { \
+            AO_or((AO_t *)(addr), (bits)); \
           } else { \
-            goto label; \
+            goto exit_label; \
           } \
         }
 #   else
@@ -242,7 +242,7 @@
 #endif
 /* If the mark bit corresponding to current is not set, set it, and    */
 /* push the contents of the object on the mark stack.  Current points  */
-/* to the bginning of the object.  We rely on the fact that the        */
+/* to the beginning of the object.  We rely on the fact that the       */
 /* preceding header calculation will succeed for a pointer past the    */
 /* first page of an object, only if it is in fact a valid pointer      */
 /* to the object.  Thus we can omit the otherwise necessary tests      */
@@ -431,7 +431,7 @@
  * real_ptr. That is the job of the caller, if appropriate.
  * Note that this is called with the mutator running, but
  * with us holding the allocation lock.  This is safe only if the
- * mutator needs tha allocation lock to reveal hidden pointers.
+ * mutator needs the allocation lock to reveal hidden pointers.
  * FIXME: Why do we need the GC_mark_state test below?
  */
 # define GC_MARK_FO(real_ptr, mark_proc) \

Index: libgc/include/private/gc_priv.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/private/gc_priv.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- libgc/include/private/gc_priv.h     30 Aug 2008 13:57:45 -0000      1.9
+++ libgc/include/private/gc_priv.h     22 Oct 2008 19:20:22 -0000      1.10
@@ -123,7 +123,7 @@
 /*********************************/
 
 /* #define STUBBORN_ALLOC */
-                   /* Enable stubborm allocation, and thus a limited   */
+                   /* Enable stubborn allocation, and thus a limited   */
                    /* form of incremental collection w/o dirty bits.   */
 
 /* #define ALL_INTERIOR_POINTERS */
@@ -142,7 +142,7 @@
                    /* 2. This option makes it hard for the collector   */
                    /*    to allocate space that is not ``pointed to''  */
                    /*    by integers, etc.  Under SunOS 4.X with a     */
-                   /*    statically linked libc, we empiricaly         */
+                   /*    statically linked libc, we empirically        */
                    /*    observed that it would be difficult to        */
                    /*    allocate individual objects larger than 100K. */
                    /*    Even if only smaller objects are allocated,   */
@@ -990,7 +990,7 @@
 # endif
 # ifdef LARGE_CONFIG
 #   if CPP_WORDSZ > 32
-#     define MAX_HEAP_SECTS 4096       /* overflows at roughly 64 GB      */
+#     define MAX_HEAP_SECTS 8192       /* overflows at roughly 128 GB     */
 #   else
 #     define MAX_HEAP_SECTS 768                /* Separately added heap 
sections. */
 #   endif
@@ -998,7 +998,11 @@
 #   ifdef SMALL_CONFIG
 #     define MAX_HEAP_SECTS 128                /* Roughly 256MB (128*2048*1K)  
*/
 #   else
-#     define MAX_HEAP_SECTS 384                /* Roughly 3GB                  
*/
+#     if CPP_WORDSZ > 32
+#       define MAX_HEAP_SECTS 1024     /* Roughly 8GB                   */
+#     else
+#       define MAX_HEAP_SECTS 512      /* Roughly 4GB                   */
+#     endif
 #   endif
 # endif
   struct HeapSect {
@@ -1017,7 +1021,7 @@
 # endif
 # ifdef MSWINCE
     word _heap_lengths[MAX_HEAP_SECTS];
-               /* Commited lengths of memory regions obtained from kernel. */
+               /* Committed lengths of memory regions obtained from kernel. */
 # endif
   struct roots _static_roots[MAX_ROOT_SETS];
 # if !defined(MSWIN32) && !defined(MSWINCE)
@@ -1338,7 +1342,7 @@
 void GC_initiate_gc(void);
                                /* initiate collection.                 */
                                /* If the mark state is invalid, this   */
-                               /* becomes full colleection.  Otherwise */
+                               /* becomes full collection.  Otherwise  */
                                /* it's partial.                        */
 void GC_push_all(ptr_t bottom, ptr_t top);
                                /* Push everything in a range           */
@@ -1393,9 +1397,9 @@
                        /* Push system or application specific roots    */
                        /* onto the mark stack.  In some environments   */
                        /* (e.g. threads environments) this is          */
-                       /* predfined to be non-zero.  A client supplied */
-                       /* replacement should also call the original    */
-                       /* function.                                    */
+                       /* predefined to be non-zero.  A client         */
+                       /* supplied replacement should also call the    */
+                       /* original function.                           */
 extern void GC_push_gc_structures(void);
                        /* Push GC internal roots.  These are normally  */
                        /* included in the static data segment, and     */
@@ -1871,7 +1875,7 @@
                        /* Could the page contain valid heap pointers?  */
 void GC_remove_protection(struct hblk *h, word nblocks,
                          GC_bool pointerfree);
-                       /* h is about to be writteni or allocated.  Ensure  */
+                       /* h is about to be written or allocated.  Ensure   */
                        /* that it's not write protected by the virtual     */
                        /* dirty bit implementation.                        */
                        
@@ -2028,7 +2032,7 @@
 /* were possible, and a couple of routines to facilitate       */
 /* catching accesses to bad addresses when that's              */
 /* possible/needed.                                            */
-#ifdef UNIX_LIKE
+#if defined(UNIX_LIKE) || (defined(NEED_FIND_LIMIT) && defined(CYGWIN32))
 # include <setjmp.h>
 # if defined(SUNOS5SIGS) && !defined(FREEBSD)
 #  include <sys/siginfo.h>

Index: libgc/include/private/gcconfig.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/include/private/gcconfig.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- libgc/include/private/gcconfig.h    30 Aug 2008 13:57:44 -0000      1.14
+++ libgc/include/private/gcconfig.h    22 Oct 2008 19:20:23 -0000      1.15
@@ -385,7 +385,7 @@
 #   if defined(_MSC_VER) && defined(_M_IA64)
 #     define IA64
 #     define MSWIN32   /* Really win64, but we don't treat 64-bit      */
-                       /* variants as a differnt platform.             */
+                       /* variants as a different platform.            */
 #   endif
 # endif
 # if defined(__DJGPP__)
@@ -516,7 +516,7 @@
  * For each architecture and OS, the following need to be defined:
  *
  * CPP_WORDSZ is a simple integer constant representing the word size.
- * in bits.  We assume byte addressibility, where a byte has 8 bits.
+ * in bits.  We assume byte addressability, where a byte has 8 bits.
  * We also assume CPP_WORDSZ is either 32 or 64.
  * (We care about the length of pointers, not hardware
  * bus widths.  Thus a 64 bit processor with a C compiler that uses
@@ -568,7 +568,7 @@
  * HEURISTIC2:  Take an address inside GC_init's frame, increment it repeatedly
  *             in small steps (decrement if STACK_GROWS_UP), and read the value
  *             at each location.  Remember the value when the first
- *             Segmentation violation or Bus error is signalled.  Round that
+ *             Segmentation violation or Bus error is signaled.  Round that
  *             to the nearest plausible page boundary, and use that instead
  *             of STACKBOTTOM.
  *
@@ -1141,7 +1141,7 @@
 #        define PREFETCH(x) \
            __asm__ __volatile__ ("     prefetchnta     %0": : "m"(*(char 
*)(x)))
            /* Empirically prefetcht0 is much more effective at reducing        
*/
-           /* cache miss stalls for the targetted load instructions.  But it   
*/
+           /* cache miss stalls for the targeted load instructions.  But it    
*/
            /* seems to interfere enough with other cache traffic that the net  
*/
            /* result is worse than prefetchnta.                                
*/
 #         if 0 
@@ -1165,6 +1165,10 @@
 #      undef STACK_GRAN
 #       define STACK_GRAN 0x10000
 #       define HEURISTIC1
+#       ifdef USE_MMAP
+#         define NEED_FIND_LIMIT
+#         define USE_MMAP_ANON
+#       endif
 #   endif
 #   ifdef OS2
 #      define OS_TYPE "OS2"
@@ -1256,7 +1260,7 @@
       extern char _end;
       extern char *_STACKTOP;
       /* Depending on calling conventions Watcom C either precedes
-         or does not precedes with undescore names of C-variables.
+         or does not precedes with underscore names of C-variables.
          Make sure startup code variables always have the same names.  */
       #pragma aux __nullarea "*";
       #pragma aux _end "*";
@@ -1528,7 +1532,7 @@
        /* initialization.                                                 */
 #      define STACKBOTTOM ((ptr_t)(((word)(environ) | (getpagesize()-1))+1))
 /* #           define HEURISTIC2 */
-       /* Normally HEURISTIC2 is too conervative, since                */
+       /* Normally HEURISTIC2 is too conservative, since               */
        /* the text segment immediately follows the stack.              */
        /* Hence we give an upper pound.                                */
        /* This is currently unused, since we disabled HEURISTIC2       */
@@ -1968,8 +1972,6 @@
 #        define MPROTECT_VDB
          /* We also avoided doing this in the past with GC_WIN32_THREADS */
          /* Hopefully that's fixed.                                      */
-#      endif
-#      if _MSC_VER >= 1300  /* .NET, i.e. > VisualStudio 6     */
 #         define GWW_VDB
 #      endif
 #       define DATAEND  /* not needed */
@@ -2132,7 +2134,11 @@
 # endif
 
 # ifndef STATIC
+#   ifndef NO_DEBUGGING
 #   define STATIC /* ignore to aid profiling and possibly debugging */
+#   else
+#     define STATIC static
+#   endif
 # endif
 
 # if defined(LINUX) || defined(HURD) || defined(__GLIBC__)
@@ -2305,7 +2311,7 @@
        /* How to get heap memory from the OS:                          */
        /* Note that sbrk()-like allocation is preferred, since it      */
        /* usually makes it possible to merge consecutively allocated   */
-       /* chunks.  It also avoids unintented recursion with            */
+       /* chunks.  It also avoids unintended recursion with            */
        /* -DREDIRECT_MALLOC.                                           */
        /* GET_MEM() returns a HLKSIZE aligned chunk.                   */
        /* 0 is taken to mean failure.                                  */

Index: libgc/libatomic_ops-1.2/ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/ChangeLog,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/libatomic_ops-1.2/ChangeLog   30 Aug 2008 13:57:45 -0000      1.2
+++ libgc/libatomic_ops-1.2/ChangeLog   22 Oct 2008 19:20:24 -0000      1.3
@@ -1,3 +1,27 @@
+2008-10-21 Hans Boehm <address@hidden>  (really Ivan Maidanski)
+       * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
+       * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
+       * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
+       * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
+       * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
+       * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
+       * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
+       * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
+       * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
+       * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
+       * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
+       * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
+       * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix 
comments.
+       * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
+       * src/atomic_ops.c: Fix comments.
+       * src/atomic_ops.h: Fix comments.
+       * src/atomic_ops_stack.c: Fix comments.
+       * src/atomic_ops_stack.h: Fix comments.
+       
+2008-10-20 Hans Boehm <address@hidden>  (really Andrew Agno)
+       * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
+       fix return type.
+
 2008-08-21 Hans Boehm <address@hidden>
        * config.guess, config.sub, configure: Regenerate/replace.
        Use autoconf 2.61, automake 1.9.6.

Index: libgc/libatomic_ops-1.2/src/atomic_ops.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/libatomic_ops-1.2/src/atomic_ops.c    31 Jul 2008 19:54:27 -0000      
1.1
+++ libgc/libatomic_ops-1.2/src/atomic_ops.c    22 Oct 2008 19:20:24 -0000      
1.2
@@ -59,12 +59,12 @@
  * Out of line compare-and-swap emulation based on test and set.
  * 
  * We use a small table of locks for different compare_and_swap locations.
- * Before we update perform a compare-and-swap, we grap the corresponding
+ * Before we update perform a compare-and-swap, we grab the corresponding
  * lock.  Different locations may hash to the same lock, but since we
  * never acquire more than one lock at a time, this can't deadlock.
  * We explicitly disable signals while we perform this operation.
  *
- * FIXME: We should probably also suppport emulation based on Lamport
+ * FIXME: We should probably also support emulation based on Lamport
  * locks, since we may not have test_and_set either.
  */
 #define AO_HASH_SIZE 16

Index: libgc/libatomic_ops-1.2/src/atomic_ops.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/libatomic_ops-1.2/src/atomic_ops.h    30 Aug 2008 13:57:46 -0000      
1.2
+++ libgc/libatomic_ops-1.2/src/atomic_ops.h    22 Oct 2008 19:20:25 -0000      
1.3
@@ -58,7 +58,7 @@
 /*       later writes.                                         */
 /* _full: Ordered with respect to both earlier and later memops.*/
 /* _release_write: Ordered with respect to earlier writes.     */
-/* _acquire_read: Ordered with repsect to later reads.         */
+/* _acquire_read: Ordered with respect to later reads.         */
 /*                                                             */
 /* Currently we try to define the following atomic memory      */
 /* operations, in combination with the above barriers:         */
@@ -122,7 +122,7 @@
 /*                                                             */
 /* The architecture dependent section:                         */
 /* This defines atomic operations that have direct hardware    */
-/* support on a particular platform, mostly by uncluding the   */
+/* support on a particular platform, mostly by including the   */
 /* appropriate compiler- and hardware-dependent file.                  */
 /*                                                             */
 /* The synthesis section:                                      */
@@ -132,7 +132,7 @@
 /* We make no attempt to synthesize operations in ways that    */
 /* effectively introduce locks, except for the debugging/demo  */
 /* pthread-based implementation at the beginning.  A more      */
-/* relistic implementation that falls back to locks could be   */
+/* realistic implementation that falls back to locks could be  */
 /* added as a higher layer.  But that would sacrifice          */
 /* usability from signal handlers.                             */
 /* The synthesis section is implemented almost entirely in     */

Index: libgc/libatomic_ops-1.2/src/atomic_ops_stack.c
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops_stack.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/libatomic_ops-1.2/src/atomic_ops_stack.c      31 Jul 2008 19:54:27 
-0000      1.1
+++ libgc/libatomic_ops-1.2/src/atomic_ops_stack.c      22 Oct 2008 19:20:25 
-0000      1.2
@@ -69,7 +69,7 @@
 #ifdef AO_USE_ALMOST_LOCK_FREE
 
 /* LIFO linked lists based on compare-and-swap.  We need to avoid      */
-/* the case of a node deleton and reinsertion while I'm deleting       */
+/* the case of a node deletion and reinsertion while I'm deleting      */
 /* it, since that may cause my CAS to succeed eventhough the next      */
 /* pointer is now wrong.  Our solution is not fully lock-free, but it  */
 /* is good enough for signal handlers, provided we have a suitably low */
@@ -143,7 +143,7 @@
  * I concluded experimentally that checking a value first before
  * performing a compare-and-swap is usually beneficial on X86, but
  * slows things down appreciably with contention on Itanium.
- * ince the Itanium behavior makes more sense to me (more cache line
+ * Since the Itanium behavior makes more sense to me (more cache line
  * movement unless we're mostly reading, but back-off should guard
  * against that), we take Itanium as the default.  Measurements on
  * other multiprocessor architectures would be useful.  (On a uniprocessor,
@@ -234,8 +234,8 @@
                    ( &(list -> ptr), next, (AO_t) element));
     /* This uses a narrow CAS here, an old optimization suggested      */
     /* by Treiber.  Pop is still safe, since we run into the ABA       */
-    /* problem only if there were both interveining "pop"s and "push"es.*/
-    /* Inthat case we still see a change inthe version number.         */
+    /* problem only if there were both intervening "pop"s and "push"es.        
*/
+    /* In that case we still see a change in the version number.       */
 }
 
 AO_t *AO_stack_pop_acquire(AO_stack_t *list)

Index: libgc/libatomic_ops-1.2/src/atomic_ops_stack.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops_stack.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/libatomic_ops-1.2/src/atomic_ops_stack.h      31 Jul 2008 19:54:27 
-0000      1.1
+++ libgc/libatomic_ops-1.2/src/atomic_ops_stack.h      22 Oct 2008 19:20:25 
-0000      1.2
@@ -94,7 +94,7 @@
   volatile AO_t AO_stack_bl[AO_BL_SIZE];
 } AO_stack_aux;
 
-/* The stack implementation knows only about the lecation of   */
+/* The stack implementation knows only about the location of   */
 /* link fields in nodes, and nothing about the rest of the     */
 /* stack elements.  Link fields hold an AO_t, which is not     */
 /* necessarily a real pointer.  This converts the AO_t to a    */

Index: 
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/aligned_atomic_load_store.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/aligned_atomic_load_store.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/aligned_atomic_load_store.h  
30 Aug 2008 13:57:46 -0000      1.2
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/aligned_atomic_load_store.h  
22 Oct 2008 19:20:26 -0000      1.3
@@ -21,7 +21,7 @@
  */ 
 
 /*
- * Definitions for architecturs on which loads and stores of AO_t are
+ * Definitions for architectures on which loads and stores of AO_t are
  * atomic fo all legal alignments.
  */
 

Index: 
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- 
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h  
    31 Jul 2008 20:24:32 -0000      1.1
+++ 
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h  
    22 Oct 2008 19:20:27 -0000      1.2
@@ -22,7 +22,8 @@
 
 /*
  * Describes architectures on which AO_t, unsigned char, unsigned short,
- * and unsigned int loads and strores are atomic for all normally legal 
alignments.
+ * and unsigned int loads and stores are atomic for all normally legal
+ * alignments.
  */
 #include "aligned_atomic_load_store.h"
 #include "char_atomic_load_store.h"

Index: libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_atomic_load_store.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_atomic_load_store.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_atomic_load_store.h      
31 Jul 2008 19:54:29 -0000      1.1
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/all_atomic_load_store.h      
22 Oct 2008 19:20:27 -0000      1.2
@@ -22,7 +22,7 @@
 
 /*
  * Describes architectures on which AO_t, unsigned char, unsigned short,
- * and unsigned int loads and strores are atomic for all normally legal
+ * and unsigned int loads and stores are atomic for all normally legal
  * alignments.
  */
 #include "atomic_load_store.h"

Index: libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/atomic_load_store.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/atomic_load_store.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/atomic_load_store.h  30 Aug 
2008 13:57:46 -0000      1.2
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/atomic_load_store.h  22 Oct 
2008 19:20:28 -0000      1.3
@@ -21,8 +21,8 @@
  */ 
 
 /*
- * Definitions for architecturs on which loads and stores of AO_t are
- * atomic fo all legal alignments.
+ * Definitions for architectures on which loads and stores of AO_t are
+ * atomic for all legal alignments.
  */
 
 AO_INLINE AO_t

Index: libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/char_atomic_load_store.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/char_atomic_load_store.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/char_atomic_load_store.h     
30 Aug 2008 13:57:46 -0000      1.2
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/char_atomic_load_store.h     
22 Oct 2008 19:20:28 -0000      1.3
@@ -21,7 +21,7 @@
  */ 
 
 /*
- * Definitions for architecturs on which loads and stores of unsigned char are
+ * Definitions for architectures on which loads and stores of unsigned char are
  * atomic for all legal alignments.
  */
 

Index: 
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- 
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h  
    30 Aug 2008 13:57:46 -0000      1.2
+++ 
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h  
    22 Oct 2008 19:20:29 -0000      1.3
@@ -21,8 +21,8 @@
  */ 
 
 /*
- * Definitions for architecturs on which loads and stores of unsigned int are
- * atomic fo all legal alignments.
+ * Definitions for architectures on which loads and stores of unsigned int are
+ * atomic for all legal alignments.
  */
 
 AO_INLINE unsigned int

Index: libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_atomic_load_store.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_atomic_load_store.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_atomic_load_store.h      
30 Aug 2008 13:57:46 -0000      1.2
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/int_atomic_load_store.h      
22 Oct 2008 19:20:29 -0000      1.3
@@ -21,7 +21,7 @@
  */ 
 
 /*
- * Definitions for architecturs on which loads and stores of unsigned int are
+ * Definitions for architectures on which loads and stores of unsigned int are
  * atomic for all legal alignments.
  */
 

Index: 
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- 
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h
    30 Aug 2008 13:57:47 -0000      1.2
+++ 
libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h
    22 Oct 2008 19:20:29 -0000      1.3
@@ -21,8 +21,8 @@
  */ 
 
 /*
- * Definitions for architecturs on which loads and stores of unsigned short are
- * atomic fo all legal alignments.
+ * Definitions for architectures on which loads and stores of unsigned short
+ * are atomic for all legal alignments.
  */
 
 AO_INLINE unsigned short

Index: libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_atomic_load_store.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_atomic_load_store.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_atomic_load_store.h    
30 Aug 2008 13:57:47 -0000      1.2
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/short_atomic_load_store.h    
22 Oct 2008 19:20:29 -0000      1.3
@@ -21,8 +21,8 @@
  */ 
 
 /*
- * Definitions for architecturs on which loads and stores of unsigned short are
- * atomic for all legal alignments.
+ * Definitions for architectures on which loads and stores of unsigned short
+ * are atomic for all legal alignments.
  */
 
 AO_INLINE unsigned short

Index: libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/arm.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/arm.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/arm.h    30 Aug 2008 
13:57:47 -0000      1.2
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/arm.h    22 Oct 2008 
19:20:30 -0000      1.3
@@ -236,7 +236,7 @@
   /* to be stored.  Both registers must be different from addr.        */
   /* Make the address operand an early clobber output so it     */
   /* doesn't overlap with the other operands.  The early clobber*/
-  /* on oldval is neccessary to prevent the compiler allocating */
+  /* on oldval is necessary to prevent the compiler allocating  */
   /* them to the same register if they are both unused.        */
   __asm__ __volatile__("swp %0, %2, [%3]"
                         : "=&r"(oldval), "=&r"(addr)

Index: libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86.h    31 Jul 2008 
19:54:33 -0000      1.1
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86.h    22 Oct 2008 
19:20:30 -0000      1.2
@@ -143,7 +143,7 @@
   char result;
   #if __PIC__
   /* If PIC is turned on, we can't use %ebx as it is reserved for the
-     GOT poiner.  We can save and restore %ebx because GCC won't be
+     GOT pointer.  We can save and restore %ebx because GCC won't be
      using it for anything else (such as any of the m operands) */
   __asm__ __volatile__("pushl %%ebx;"   /* save ebx used for PIC GOT ptr */
                       "movl %6,%%ebx;" /* move new_val2 to %ebx */

Index: libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86_64.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86_64.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86_64.h 31 Jul 2008 
19:54:33 -0000      1.1
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86_64.h 22 Oct 2008 
19:20:30 -0000      1.2
@@ -96,7 +96,7 @@
 
 #define AO_HAVE_short_fetch_and_add_full
 
-AO_INLINE unsigned short
+AO_INLINE unsigned int
 AO_int_fetch_and_add_full (volatile unsigned int *p, unsigned int incr)
 {
   unsigned int result;
@@ -174,7 +174,7 @@
 #else
 /* this one provides spinlock based emulation of CAS implemented in    */
 /* atomic_ops.c.  We probably do not want to do this here, since it is  */
-/* not attomic with respect to other kinds of updates of *addr.  On the */
+/* not atomic with respect to other kinds of updates of *addr.  On the  */
 /* other hand, this may be a useful facility on occasion.              */
 #ifdef AO_WEAK_DOUBLE_CAS_EMULATION
 int AO_compare_double_and_swap_double_emulation(volatile AO_double_t *addr,

Index: libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/hppa.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/hppa.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/hppa.h   31 Jul 2008 
19:54:33 -0000      1.1
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/hppa.h   22 Oct 2008 
19:20:30 -0000      1.2
@@ -19,7 +19,7 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
THE
  * SOFTWARE. 
  * 
- * Derived from the corresponsing header file for gcc.
+ * Derived from the corresponding header file for gcc.
  * 
  */ 
 

Index: libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/ia64.h
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnet/libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/ia64.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/ia64.h   31 Jul 2008 
19:54:34 -0000      1.1
+++ libgc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc/ia64.h   22 Oct 2008 
19:20:31 -0000      1.2
@@ -22,7 +22,7 @@
 
 /*
  * This file specifies Itanimum primitives for use with the HP compiler
- * unde HP/UX.  We use intrinsics instead of the inline assembly code in the
+ * under HP/UX.  We use intrinsics instead of the inline assembly code in the
  * gcc file.
  */
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]