diff options
author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-06 23:59:01 +0000 |
---|---|---|
committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-06 23:59:01 +0000 |
commit | 5f85c3466431350e9a9d4bf9086a029e086d2ccb (patch) | |
tree | bf63ddd6f851df65a31a370541fbdecfd301b4bc /boehm-gc | |
parent | 4f4de5a0a0c32ddbffc87f6a807e42223b378b73 (diff) | |
download | gcc-5f85c3466431350e9a9d4bf9086a029e086d2ccb.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r33746,
which included commits to RCS files with non-trunk default branches.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33747 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc')
-rw-r--r-- | boehm-gc/gcj_mlc.c | 4 | ||||
-rw-r--r-- | boehm-gc/include/gc_cpp.h | 10 | ||||
-rw-r--r-- | boehm-gc/include/private/gc_priv.h | 2 | ||||
-rw-r--r-- | boehm-gc/include/private/gcconfig.h | 13 |
4 files changed, 21 insertions, 8 deletions
diff --git a/boehm-gc/gcj_mlc.c b/boehm-gc/gcj_mlc.c index ba51cbe498f..eb67eac1f36 100644 --- a/boehm-gc/gcj_mlc.c +++ b/boehm-gc/gcj_mlc.c @@ -282,4 +282,8 @@ DCL_LOCK_STATE; return((GC_PTR) op); } +#else + +char GC_no_gcj_support; + #endif /* GC_GCJ_SUPPORT */ diff --git a/boehm-gc/include/gc_cpp.h b/boehm-gc/include/gc_cpp.h index 36013e135b9..35686fc3527 100644 --- a/boehm-gc/include/gc_cpp.h +++ b/boehm-gc/include/gc_cpp.h @@ -255,12 +255,12 @@ inline gc_cleanup::gc_cleanup() { GC_finalization_proc oldProc; void* oldData; void* base = GC_base( (void *) this ); - if (0 == base) return; - GC_REGISTER_FINALIZER_IGNORE_SELF( - base, cleanup, (void*) ((char*) this - (char*) base), + if (0 != base) { + GC_REGISTER_FINALIZER_IGNORE_SELF( + base, (GC_finalization_proc)cleanup, (void*) ((char*) this - (char*) base), &oldProc, &oldData ); - if (0 != oldProc) { - GC_REGISTER_FINALIZER_IGNORE_SELF( base, oldProc, oldData, 0, 0 );}} + if (0 != oldProc) { + GC_REGISTER_FINALIZER_IGNORE_SELF( base, oldProc, oldData, 0, 0 );}}} inline void* operator new( size_t size, diff --git a/boehm-gc/include/private/gc_priv.h b/boehm-gc/include/private/gc_priv.h index eabb85f0c20..ce685875549 100644 --- a/boehm-gc/include/private/gc_priv.h +++ b/boehm-gc/include/private/gc_priv.h @@ -1405,7 +1405,7 @@ extern GC_bool GC_objects_are_marked; /* There are marked objects in */ extern GC_bool GC_incremental; /* Using incremental/generational collection. */ #else -# define GC_incremental TRUE +# define GC_incremental FALSE /* Hopefully allow optimizer to remove some code. */ #endif diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h index 4c4bca31222..045617a1d7b 100644 --- a/boehm-gc/include/private/gcconfig.h +++ b/boehm-gc/include/private/gcconfig.h @@ -386,6 +386,11 @@ * to the nearest plausible page boundary, and use that instead * of STACKBOTTOM. * + * Gustavo Rodriguez-Rivera points out that on most (all?) Unix machines, + * the value of environ is a pointer that can serve as STACKBOTTOM. + * I expect that HEURISTIC2 can be replaced by this approach, which + * interferes far less with debugging. + * * If no expression for STACKBOTTOM can be found, and neither of the above * heuristics are usable, the collector can still be used with all of the above * undefined, provided one of the following is done: @@ -553,6 +558,7 @@ /* This was 2, but that didn't sound right. */ # define OS_TYPE "LINUX" # define HEURISTIC1 +# define DYNAMIC_LOADING # undef STACK_GRAN # define STACK_GRAN 0x10000000 /* Stack usually starts at 0x80000000 */ @@ -990,7 +996,11 @@ /* this.) */ # define STACKBOTTOM ((ptr_t) 0x7b033000) /* from /etc/conf/h/param.h */ # else -# define HEURISTIC2 + /* Gustavo Rodriguez-Rivera suggested changing HEURISTIC2 */ + /* to this. We'll probably do this on other platforms, too. */ + /* For now I'll use it where I can test it. */ + extern char ** environ; +# define STACKBOTTOM ((ptr_t)environ) # endif # define STACK_GROWS_UP # define DYNAMIC_LOADING @@ -1076,7 +1086,6 @@ /* Requires Linux 2.3.47 or later. */ extern int _end; # define DATAEND (&_end) - /* PREFETCH appears to have a large performance impact. */ # define PREFETCH(x) \ __asm__ (" lfetch [%0]": : "r"((void *)(x))) # define PREFETCH_FOR_WRITE(x) \ |