This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

GC 6.0alpha7 local changes


Last night I imported the latest GC version onto the mainline and
cleaned out a few more local changes which were obviously duplicated
or obsolete. Here's a diff which shows all of the current remaining
local changes vs. Hans' distribution.

I've tested the new GC on i686 linux and had no
testsuite/GCTest/GCBench regressions.

regards

  [ bryce ]


Index: Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/Makefile.am,v
retrieving revision 1.1.1.1
retrieving revision 1.22
diff -u -r1.1.1.1 -r1.22
--- Makefile.am	2001/05/21 06:39:24	1.1.1.1
+++ Makefile.am	2001/05/21 08:35:12	1.22
@@ -1,16 +1,3 @@
-# Copyright (c) 1999-2001 by Red Hat, Inc. All rights reserved.
-# 
-# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-# OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
-# 
-# Permission is hereby granted to use or copy this program
-# for any purpose,  provided the above notices are retained on all copies.
-# Permission to modify the code and to distribute modified code is granted,
-# provided the above notices are retained, and a notice that the code was
-# modified is included with the above copyright notice.
-#
-# Original author: Tom Tromey
-
 ## Process this file with automake to produce Makefile.in.
 
 ## FIXME: `make dist' in this directory will not currently work.  Many
@@ -38,13 +25,11 @@
 
 toolexeclib_LTLIBRARIES = $(target_all)
 EXTRA_LTLIBRARIES = libgcjgc.la
-libgcjgc_la_SOURCES = allchblk.c alloc.c blacklst.c checksums.c	\
-gcconfig.h dbg_mlc.c dyn_load.c finalize.c gc.h gc_alloc.h gc_cpp.h \
-gc_hdrs.h gc_mark.h gc_priv.h gc_private.h gc_typed.h gcj_mlc.c headers.c \
-hpux_irix_threads.c linux_threads.c malloc.c mallocx.c mark.c mark_rts.c \
-misc.c new_hblk.c obj_map.c os_dep.c pcr_interface.c ptr_chck.c	\
-real_malloc.c reclaim.c solaris_pthreads.c solaris_threads.c \
-solaris_threads.h stubborn.c typd_mlc.c version.h weakpointer.h
+libgcjgc_la_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
+dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c irix_threads.c \
+linux_threads.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
+obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
+solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c`
 
 # Include THREADLIBS here to ensure that the correct versions of
 # linuxthread semaphore functions get linked:
@@ -52,9 +37,10 @@
 libgcjgc_la_DEPENDENCIES = @addobjs@
 libgcjgc_la_LDFLAGS = -version-info 1:1:0 -rpath $(toolexeclibdir)
 
-EXTRA_libgcjgc_la_SOURCES = alpha_mach_dep.s mips_sgi_mach_dep.s \
-mips_ultrix_mach_dep.s rs6000_mach_dep.s sparc_mach_dep.s \
-sparc_sunos4_mach_dep.s mach_dep.c ecos.cc
+EXTRA_libgcjgc_la_SOURCES = alpha_mach_dep.s hpux_test_and_clear.s \
+mips_sgi_mach_dep.s mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
+rs6000_mach_dep.s sparc_mach_dep.s sparc_netbsd_mach_dep.s \
+sparc_sunos4_mach_dep.s
 
 AM_CXXFLAGS = @BOEHM_GC_CFLAGS@
 AM_CFLAGS = @BOEHM_GC_CFLAGS@
@@ -68,7 +54,8 @@
 
 ## FIXME: relies on internal code generated by automake.
 all_objs = @addobjs@ $(libgcjgc_la_OBJECTS)
-$(all_objs) : gcconfig.h gc_priv.h gc_hdrs.h gc.h gc_mark.h
+$(all_objs) : include/private/gcconfig.h include/private/gc_priv.h \
+include/private/gc_hdrs.h include/gc.h include/gc_gcj.h include/gc_mark.h
 
 ## FIXME: we shouldn't have to do this, but automake forces us to.
 .s.lo:

Index: alloc.c
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/alloc.c,v
retrieving revision 1.1.1.5
retrieving revision 1.6
diff -u -r1.1.1.5 -r1.6
--- alloc.c	2001/05/21 06:39:24	1.1.1.5
+++ alloc.c	2001/05/21 08:35:13	1.6
@@ -115,6 +115,7 @@
     unsigned long time_diff;
     
     if ((count++ & 3) != 0) return(0);
+#ifndef NO_CLOCK
     GET_TIME(current_time);
     time_diff = MS_TIME_DIFF(current_time,GC_start_time);
     if (time_diff >= TIME_LIMIT) {
@@ -127,6 +128,7 @@
 #	endif
     	return(1);
     }
+#endif
     return(0);
   }
 #endif /* !SMALL_CONFIG */
@@ -272,7 +274,9 @@
         /* We try to mark with the world stopped.	*/
         /* If we run out of time, this turns into	*/
         /* incremental marking.			*/
+#ifndef NO_CLOCK
         GET_TIME(GC_start_time);
+#endif
         if (GC_stopped_mark(GC_timeout_stop_func)) {
 #           ifdef SAVE_CALL_CHAIN
                 GC_save_callers(GC_last_stack);

Index: alpha_mach_dep.s
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/alpha_mach_dep.s,v
retrieving revision 1.1.1.3
retrieving revision 1.4
diff -u -r1.1.1.3 -r1.4
--- alpha_mach_dep.s	2000/04/19 02:29:15	1.1.1.3
+++ alpha_mach_dep.s	2000/04/19 10:09:57	1.4
@@ -1,4 +1,3 @@
- # $Id: alpha_mach_dep.s,v 1.1.1.3 2000/04/19 02:29:15 bryce Exp $
 
 # This is BROKEN on a 21264 running gcc, and probably in other cases.
 # The compiler may spill pointers to fp registers, and this code doesn't

Index: configure.in
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/configure.in,v
retrieving revision 1.1.1.1
retrieving revision 1.24
diff -u -r1.1.1.1 -r1.24
--- configure.in	2001/05/21 06:39:24	1.1.1.1
+++ configure.in	2001/05/21 08:35:13	1.24
@@ -1,19 +1,6 @@
-# Copyright (c) 1999-2001 by Red Hat, Inc. All rights reserved.
-# 
-# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-# OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
-# 
-# Permission is hereby granted to use or copy this program
-# for any purpose,  provided the above notices are retained on all copies.
-# Permission to modify the code and to distribute modified code is granted,
-# provided the above notices are retained, and a notice that the code was
-# modified is included with the above copyright notice.
-#
-# Original author: Tom Tromey
-
 dnl Process this file with autoconf to produce configure.
 
-AC_INIT(gc_mark.h)
+AC_INIT(gcj_mlc.c)
 
 dnl Can't be done in BOEHM_CONFIGURE because that confuses automake. 
 AC_CONFIG_AUX_DIR(..)
@@ -25,8 +12,6 @@
 AM_PROG_LIBTOOL
 
 dnl We use these options to decide which functions to include.
-
-
 AC_ARG_WITH(target-subdir,
 [  --with-target-subdir=SUBDIR
                           configuring with a cross compiler])
@@ -41,46 +26,11 @@
    AC_EXEEXT
 fi
 
-AC_MSG_CHECKING([for threads package to use])
-AC_ARG_ENABLE(threads, [  --enable-threads=TYPE   choose threading package],
-  THREADS=$enableval,
-  dnl FIXME: figure out native threads to use here.
-  THREADS=no)
-
-if test "$THREADS" = yes; then
-   case "$host" in
-    *-*-vxworks*)
-       THREADS=vxworks
-       ;;
-    *-*-linux*)
-       # FIXME: this isn't correct in all cases.
-       THREADS=posix
-       ;;
-    *-*-win*)
-       THREADS=win32
-       ;;
-    *-*-irix[[1-5]].*)
-       # No built-in threads library on IRIX 5.* and older.
-       THREADS=none
-       ;;
-    *-*-irix*)
-       # FIXME: for now, choose POSIX, because we implement that.
-       # Later, choose irix threads.
-       THREADS=posix
-       ;;
-    *-*-solaris*)
-       # FIXME: for now, choose POSIX, because we implement that.
-       # Later, choose solaris threads.
-       THREADS=posix
-       ;;
-    *)
-       # For now.
-       THREADS=none
-       ;;
-   esac
-fi
+AC_MSG_CHECKING([for thread model used by GCC])
+THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
+AC_MSG_RESULT([$THREADS])
 
-INCLUDES=
+INCLUDES=-I${srcdir}/include
 THREADLIBS=
 case "$THREADS" in
  no | none | single)
@@ -88,11 +38,18 @@
     ;;
  posix | pthreads)
     THREADS=posix
+    THREADLIBS=-lpthread
     case "$host" in
      *-*-linux*)
 	AC_DEFINE(LINUX_THREADS)
 	AC_DEFINE(_REENTRANT)
 	;;
+     *-*-freebsd*)
+	AC_MSG_WARN("FreeBSD does not yet fully support threads with Boehm GC.")
+	AC_DEFINE(FREEBSD_THREADS)
+	INCLUDES="$INCLUDES -pthread"
+	THREADLIBS=-pthread
+      	;;
      *-*-solaris*)
 	AC_DEFINE(SOLARIS_THREADS)
 	AC_DEFINE(_SOLARIS_PTHREADS)
@@ -101,7 +58,6 @@
 	AC_DEFINE(IRIX_THREADS)
 	;;
     esac
-    THREADLIBS=-lpthread
     ;;
  decosf1 | irix | mach | os2 | solaris | win32 | dce | vxworks)
     AC_MSG_ERROR(thread package $THREADS not yet supported)
@@ -110,7 +66,6 @@
     AC_MSG_ERROR($THREADS is an unknown thread package)
     ;;
 esac
-AC_MSG_RESULT($THREADS)
 AC_SUBST(THREADLIBS)
 
 AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl")

Index: dbg_mlc.c
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/dbg_mlc.c,v
retrieving revision 1.1.1.6
retrieving revision 1.7
diff -u -r1.1.1.6 -r1.7
--- dbg_mlc.c	2001/05/21 06:39:24	1.1.1.6
+++ dbg_mlc.c	2001/05/21 08:35:13	1.7
@@ -423,6 +423,35 @@
     return (GC_store_debug_info(result, (word)lb, s, (word)i));
 }
 
+# ifdef __STDC__
+    GC_PTR GC_debug_generic_malloc(size_t lb, int k, GC_EXTRA_PARAMS)
+# else
+    GC_PTR GC_debug_malloc(lb, k, s, i)
+    size_t lb;
+    int k;
+    char * s;
+    int i;
+#   ifdef GC_ADD_CALLER
+	--> GC_ADD_CALLER not implemented for K&R C
+#   endif
+# endif
+{
+    GC_PTR result = GC_generic_malloc(lb + DEBUG_BYTES, k);
+    
+    if (result == 0) {
+        GC_err_printf1("GC_debug_malloc(%ld) returning NIL (",
+        	       (unsigned long) lb);
+        GC_err_puts(s);
+        GC_err_printf1(":%ld)\n", (unsigned long)i);
+        return(0);
+    }
+    if (!GC_debugging_started) {
+    	GC_start_debugging();
+    }
+    ADD_CALL_CHAIN(result, ra);
+    return (GC_store_debug_info(result, (word)lb, s, (word)i));
+}
+
 # ifdef DBG_HDRS_ALL
 /* 
  * An allocation function for internal use.

Index: dyn_load.c
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/dyn_load.c,v
retrieving revision 1.1.1.6
retrieving revision 1.10
diff -u -r1.1.1.6 -r1.10
--- dyn_load.c	2001/05/21 06:39:24	1.1.1.6
+++ dyn_load.c	2001/05/21 08:35:13	1.10
@@ -519,7 +519,6 @@
 	/* The type is a lie, since the real type doesn't make sense here, */
 	/* and we only test for NULL.					   */
 
-
 /* We use /proc to track down all parts of the address space that are	*/
 /* mapped by the process, and throw out regions we know we shouldn't	*/
 /* worry about.  This may also work under other SVR4 variants.		*/

Index: gcj_mlc.c
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/gcj_mlc.c,v
retrieving revision 1.1.1.3
retrieving revision 1.4
diff -u -r1.1.1.3 -r1.4
--- gcj_mlc.c	2001/05/21 06:39:24	1.1.1.3
+++ gcj_mlc.c	2001/05/21 08:35:13	1.4
@@ -17,13 +17,13 @@
 #ifdef GC_GCJ_SUPPORT
 
 /*
- * This is an allocator interface tuned for gcj (the GNU/Cygnus static
+ * This is an allocator interface tuned for gcj (the GNU static
  * java compiler).
  *
  * Each allocated object has a pointer in its first word to a vtable,
  * which for our purposes is simply a structure describing the type of
  * the object.
- * This descriptor structur contains a GC marking descriptor at offset
+ * This descriptor structure contains a GC marking descriptor at offset
  * MARK_DESCR_OFFSET.
  *
  * It is hoped that this interface may also be useful for other systems,
@@ -37,7 +37,7 @@
  */
 
 #include "private/gc_priv.h"
-#include "private/gc_mark.h"
+#include "private/gc_pmark.h"
 #include "gc_gcj.h"
 #include "private/dbg_mlc.h"
 
@@ -52,7 +52,7 @@
 ptr_t * GC_gcjdebugobjfreelist;
 
 /* Caller does not hold allocation lock. */
-void GC_init_gcj_malloc(int mp_index, void * /* really mark_proc */mp)
+void GC_init_gcj_malloc(int mp_index, void * /* really GC_mark_proc */mp)
 {
     register int i;
     DCL_LOCK_STATE;
@@ -66,7 +66,7 @@
       return;
     }
     GC_gcj_malloc_initialized = TRUE;
-    GC_mark_procs[mp_index] = (mark_proc)mp;
+    GC_mark_procs[mp_index] = (GC_mark_proc)mp;
     if (mp_index >= GC_n_mark_procs) ABORT("GC_init_gcj_malloc: bad index");
     /* Set up object kind gcj-style indirect descriptor. */
       GC_gcjobjfreelist = (ptr_t *)
@@ -77,7 +77,7 @@
       GC_obj_kinds[GC_gcj_kind].ok_freelist = GC_gcjobjfreelist;
       GC_obj_kinds[GC_gcj_kind].ok_reclaim_list = 0;
       GC_obj_kinds[GC_gcj_kind].ok_descriptor =
-    	(((word)(-MARK_DESCR_OFFSET - INDIR_PER_OBJ_BIAS)) | DS_PER_OBJECT);
+    	(((word)(-MARK_DESCR_OFFSET - GC_INDIR_PER_OBJ_BIAS)) | GC_DS_PER_OBJECT);
       GC_obj_kinds[GC_gcj_kind].ok_relocate_descr = FALSE;
       GC_obj_kinds[GC_gcj_kind].ok_init = TRUE;
     /* Set up object kind for objects that require mark proc call.	*/
@@ -90,7 +90,7 @@
       GC_obj_kinds[GC_gcj_debug_kind].ok_freelist = GC_gcjdebugobjfreelist;
       GC_obj_kinds[GC_gcj_debug_kind].ok_reclaim_list = 0;
       GC_obj_kinds[GC_gcj_debug_kind].ok_descriptor =
-    	MAKE_PROC(mp_index, 1 /* allocated with debug info */);
+    	GC_MAKE_PROC(mp_index, 1 /* allocated with debug info */);
       GC_obj_kinds[GC_gcj_debug_kind].ok_relocate_descr = FALSE;
       GC_obj_kinds[GC_gcj_debug_kind].ok_init = TRUE;
     UNLOCK();

Index: linux_threads.c
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/linux_threads.c,v
retrieving revision 1.1.1.6
retrieving revision 1.11
diff -u -r1.1.1.6 -r1.11
--- linux_threads.c	2001/05/21 06:39:24	1.1.1.6
+++ linux_threads.c	2001/05/21 08:35:13	1.11
@@ -736,6 +736,11 @@
     return(p);
 }
 
+/* There seems to be a very rare thread stopping problem.  To help us  */
+/* debug that, we save the ids of the stopping thread. */
+pthread_t GC_stopping_thread;
+int GC_stopping_pid;
+
 /* Caller holds allocation lock.	*/
 void GC_stop_world()
 {
@@ -745,6 +750,9 @@
     register int n_live_threads = 0;
     register int result;
 
+    GC_stopping_thread = my_thread;    /* debugging only.      */
+    GC_stopping_pid = getpid();                /* debugging only.      */
+
     /* Make sure all free list construction has stopped before we start. */
     /* No new construction can start, since free list construction is	*/
     /* required to acquire and release the GC lock before it starts,	*/
@@ -829,6 +837,7 @@
     #if DEBUG_THREADS
       GC_printf0("World started\n");
     #endif
+    GC_stopping_thread = 0;  /* debugging only */
 }
 
 # ifdef IA64

Index: mips_sgi_mach_dep.s
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/mips_sgi_mach_dep.s,v
retrieving revision 1.1.1.1
retrieving revision 1.3
diff -u -r1.1.1.1 -r1.3
--- mips_sgi_mach_dep.s	1999/04/07 14:56:06	1.1.1.1
+++ mips_sgi_mach_dep.s	1999/07/31 23:50:05	1.3
@@ -3,6 +3,7 @@
 
 # define call_push(x)     move    $4,x;    jal     GC_push_one
 
+    .option pic2
     .text
 /* Mark from machine registers that are saved by C compiler */
 #   define FRAMESZ 32

Index: misc.c
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/misc.c,v
retrieving revision 1.1.1.5
retrieving revision 1.15
diff -u -r1.1.1.5 -r1.15
--- misc.c	2001/05/21 06:39:24	1.1.1.5
+++ misc.c	2001/05/21 08:35:13	1.15
@@ -71,6 +71,10 @@
 #   endif
 # endif
 
+#ifdef ECOS
+#undef STACKBASE
+#endif
+
 GC_FAR struct _GC_arrays GC_arrays /* = { 0 } */;
 
 
@@ -750,6 +754,15 @@
     return(bytes_written);
 }
 #endif /* UN*X */
+
+#if defined(ECOS)
+int GC_write(fd, buf, len)
+{
+  _Jv_diag_write (buf, len);
+  return len;
+}
+#endif
+
 
 #if defined(MSWIN32) || defined(MSWINCE)
 #   define WRITE(f, buf, len) GC_write(buf, len)

Index: os_dep.c
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/os_dep.c,v
retrieving revision 1.1.1.7
retrieving revision 1.16
diff -u -r1.1.1.7 -r1.16
--- os_dep.c	2001/05/21 06:39:24	1.1.1.7
+++ os_dep.c	2001/05/21 08:35:13	1.16
@@ -185,6 +185,39 @@
   }
 #endif
 
+# ifdef ECOS
+
+# ifndef ECOS_GC_MEMORY_SIZE
+# define ECOS_GC_MEMORY_SIZE (448 * 1024)
+# endif /* ECOS_GC_MEMORY_SIZE */
+
+// setjmp() function, as described in ANSI para 7.6.1.1
+#define setjmp( __env__ )  hal_setjmp( __env__ )
+
+// FIXME: This is a simple way of allocating memory which is
+// compatible with ECOS early releases.  Later releases use a more
+// sophisticated means of allocating memory than this simple static
+// allocator, but this method is at least bound to work.
+static char memory[ECOS_GC_MEMORY_SIZE];
+static char *brk = memory;
+
+static void *tiny_sbrk(ptrdiff_t increment)
+{
+  void *p = brk;
+
+  brk += increment;
+
+  if (brk >  memory + sizeof memory)
+    {
+      brk -= increment;
+      return NULL;
+    }
+
+  return p;
+}
+#define sbrk tiny_sbrk
+# endif /* ECOS */
+
 #if defined(NETBSD) && defined(__ELF__)
   ptr_t GC_data_start;
 
@@ -378,7 +411,7 @@
 # endif /*!OS/2 */
 
 /* Ivan Demakov: simplest way (to me) */
-#ifdef DOS4GW
+#if defined (DOS4GW)
   void GC_disable_signals() { }
   void GC_enable_signals() { }
 #endif
@@ -510,6 +543,7 @@
       handler h;
 #   endif
     {
+# ifndef ECOS
 #	if defined(SUNOS5SIGS) || defined(IRIX5) || defined(OSF1)
 	  struct sigaction	act;
 
@@ -543,6 +577,7 @@
 	    old_bus_handler = signal(SIGBUS, h);
 #	  endif
 #	endif
+# endif /* ECOS */
     }
 # endif /* NEED_FIND_LIMIT || UNIX_LIKE */
 
@@ -565,6 +600,7 @@
     
     void GC_reset_fault_handler()
     {
+# ifndef ECOS
 #       if defined(SUNOS5SIGS) || defined(IRIX5) || defined(OSF1)
 	  (void) sigaction(SIGSEGV, &old_segv_act, 0);
 #	  if defined(IRIX5) && defined(_sigargs) /* Irix 5.x, not 6.x */ \
@@ -577,6 +613,7 @@
 	    (void) signal(SIGBUS, old_bus_handler);
 #	  endif
 #       endif
+# endif /* ECOS */
     }
 
     /* Return the first nonaddressible location > p (up) or 	*/
@@ -585,6 +622,7 @@
     ptr_t p;
     GC_bool up;
     {
+# ifndef ECOS
         static VOLATILE ptr_t result;
     		/* Needs to be static, since otherwise it may not be	*/
     		/* preserved across the longjmp.  Can safely be 	*/
@@ -610,9 +648,14 @@
 	    result += MIN_PAGE_SIZE;
  	}
 	return(result);
+# else /* ECOS */
+	abort();
+# endif /* ECOS */
     }
 # endif
 
+# ifndef ECOS
+
 #ifdef LINUX_STACKBOTTOM
 
 #include <sys/types.h>
@@ -764,6 +807,7 @@
     	return(result);
 #   endif /* STACKBOTTOM */
 }
+# endif /* ECOS */
 
 # endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS */
 

Index: solaris_pthreads.c
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/solaris_pthreads.c,v
retrieving revision 1.1.1.4
retrieving revision 1.5
diff -u -r1.1.1.4 -r1.5
--- solaris_pthreads.c	2001/05/21 06:39:24	1.1.1.4
+++ solaris_pthreads.c	2001/05/21 08:35:13	1.5
@@ -16,7 +16,6 @@
  * Modified Peter C. for Solaris Posix Threads.
  */
 /* Boehm, September 14, 1994 4:44 pm PDT */
-/* $Id: solaris_pthreads.c,v 1.1.1.4 2001/05/21 06:39:24 bryce Exp $ */
 
 # if defined(GC_SOLARIS_PTHREADS) || defined(_SOLARIS_PTHREADS)
 # include "private/gc_priv.h"

Index: include/private/gc_pmark.h
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/include/private/gc_pmark.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- gc_pmark.h	2001/05/21 06:39:25	1.1.1.1
+++ gc_pmark.h	2001/05/21 08:35:14	1.2
@@ -132,9 +132,14 @@
      */
 #endif /* PARALLEL_MARK */
 
-ptr_t GC_find_start();
+# ifdef PRINT_BLACK_LIST
+  ptr_t GC_find_start(ptr_t current, hdr *hhdr, word source);
+# else
+  ptr_t GC_find_start(ptr_t current, hdr *hhdr);
+# define source 0
+# endif
 
-mse * GC_signal_mark_stack_overflow();
+mse *GC_signal_mark_stack_overflow(mse *msp);
 
 # ifdef GATHERSTATS
 #   define ADD_TO_ATOMIC(sz) GC_atomic_in_use += (sz)
@@ -245,7 +250,6 @@
 #   define SET_MARK_BIT_EXIT_IF_SET(hhdr,displ,exit_label) \
     { \
         register word * mark_word_addr = hhdr -> hb_marks + divWORDSZ(displ); \
-        register word mark_word = *mark_word_addr; \
           \
         OR_WORD_EXIT_IF_SET(mark_word_addr, (word)1 << modWORDSZ(displ), \
 			    exit_label); \

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]