diff options
author | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-09-26 13:22:03 +0000 |
---|---|---|
committer | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-09-26 13:22:03 +0000 |
commit | 8f3e702b4f5e481efd9da3287688988be46262de (patch) | |
tree | 7e32e0f9d21a9ef116c976946744c146a00a2a6d /boehm-gc | |
parent | 07119d9039d5b3e47a65ba43d2668ca68e004cb8 (diff) | |
download | gcc-8f3e702b4f5e481efd9da3287688988be46262de.tar.gz |
* solaris_threads.c (MAX_ORIG_STACK_SIZE) [I386]: Provide special
Solaris 2/Intel definition.
* configure.in (i?86-*-solaris2.[89]*): Define
SOLARIS25_PROC_VDB_BUG_FIXED.
* include/private/gcconfig.h [I386 && SUNOS5]: Use it.
* configure: Regenerate.
* include/private/gcconfig.h [I386 && SUNOS5] (DATASTART): Use _etext.
(DATAEND): Define using _end.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45825 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc')
-rw-r--r-- | boehm-gc/ChangeLog | 13 | ||||
-rwxr-xr-x | boehm-gc/configure | 6 | ||||
-rw-r--r-- | boehm-gc/configure.in | 3 | ||||
-rw-r--r-- | boehm-gc/include/private/gcconfig.h | 9 | ||||
-rw-r--r-- | boehm-gc/solaris_threads.c | 11 |
5 files changed, 39 insertions, 3 deletions
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog index d1c9c04656f..a97a5e94037 100644 --- a/boehm-gc/ChangeLog +++ b/boehm-gc/ChangeLog @@ -1,3 +1,16 @@ +2001-09-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + * solaris_threads.c (MAX_ORIG_STACK_SIZE) [I386]: Provide special + Solaris 2/Intel definition. + + * configure.in (i?86-*-solaris2.[89]*): Define + SOLARIS25_PROC_VDB_BUG_FIXED. + * include/private/gcconfig.h [I386 && SUNOS5]: Use it. + * configure: Regenerate. + + * include/private/gcconfig.h [I386 && SUNOS5] (DATASTART): Use _etext. + (DATAEND): Define using _end. + 2001-09-11 Per Bothner <per@bothner.com> * include/Makefile.am: New file. It defines include_HEADERS. diff --git a/boehm-gc/configure b/boehm-gc/configure index b975d0c8202..79d9655842f 100755 --- a/boehm-gc/configure +++ b/boehm-gc/configure @@ -2807,6 +2807,12 @@ case "$host" in alpha*-*-*) machdep="alpha_mach_dep.lo" ;; + i?86-*-solaris2.[89]*) + cat >> confdefs.h <<\EOF +#define SOLARIS25_PROC_VDB_BUG_FIXED 1 +EOF + + ;; mipstx39-*-elf*) machdep="mips_ultrix_mach_dep.lo" cat >> confdefs.h <<\EOF diff --git a/boehm-gc/configure.in b/boehm-gc/configure.in index 8fc2cdffbec..48f69908fab 100644 --- a/boehm-gc/configure.in +++ b/boehm-gc/configure.in @@ -153,6 +153,9 @@ case "$host" in alpha*-*-*) machdep="alpha_mach_dep.lo" ;; + i?86-*-solaris2.[[89]]*) + AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED) + ;; mipstx39-*-elf*) machdep="mips_ultrix_mach_dep.lo" AC_DEFINE(STACKBASE, __stackbase) diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h index e8bac1bcdc2..4e20f48ade3 100644 --- a/boehm-gc/include/private/gcconfig.h +++ b/boehm-gc/include/private/gcconfig.h @@ -838,9 +838,10 @@ # endif # ifdef SUNOS5 # define OS_TYPE "SUNOS5" - extern int etext, _start; + extern int _etext, _end; extern char * GC_SysVGetDataStart(); -# define DATASTART GC_SysVGetDataStart(0x1000, &etext) +# define DATASTART GC_SysVGetDataStart(0x1000, &_etext) +# define DATAEND (&_end) /* # define STACKBOTTOM ((ptr_t)(&_start)) worked through 2.7, */ /* but reportedly breaks under 2.8. It appears that the stack */ /* base is a property of the executable, so this should not break */ @@ -849,7 +850,9 @@ # include <sys/vmparam.h> # define STACKBOTTOM USRSTACK /** At least in Solaris 2.5, PROC_VDB gives wrong values for dirty bits. */ -/*# define PROC_VDB*/ +# ifdef SOLARIS25_PROC_VDB_BUG_FIXED +# define PROC_VDB +# endif # define DYNAMIC_LOADING # ifndef USE_MMAP # define USE_MMAP diff --git a/boehm-gc/solaris_threads.c b/boehm-gc/solaris_threads.c index 8cc6319cd22..a0d03406981 100644 --- a/boehm-gc/solaris_threads.c +++ b/boehm-gc/solaris_threads.c @@ -621,7 +621,18 @@ GC_thread GC_lookup_thread(thread_t id) return(p); } +/* Solaris 2/Intel uses an initial stack size limit slightly bigger than the + SPARC default of 8 MB. Account for this to warn only if the user has + raised the limit beyond the default. + + This is identical to DFLSSIZ defined in <sys/vm_machparam.h>. This file + is installed in /usr/platform/`uname -m`/include, which is not in the + default include directory list, so copy the definition here. */ +#ifdef I386 +# define MAX_ORIG_STACK_SIZE (8 * 1024 * 1024 + ((USRSTACK) & 0x3FFFFF)) +#else # define MAX_ORIG_STACK_SIZE (8 * 1024 * 1024) +#endif word GC_get_orig_stack_size() { struct rlimit rl; |