=================================================================== RCS file: /home/cvs/OpenXM_contrib/gc/include/private/Attic/gcconfig.h,v retrieving revision 1.1 retrieving revision 1.1.1.2 diff -u -p -r1.1 -r1.1.1.2 --- OpenXM_contrib/gc/include/private/Attic/gcconfig.h 1999/11/27 10:58:34 1.1 +++ OpenXM_contrib/gc/include/private/Attic/gcconfig.h 2000/04/14 11:08:03 1.1.1.2 @@ -43,6 +43,11 @@ # define OPENBSD # define mach_type_known # endif +# if defined(__OpenBSD__) && defined(__sparc__) +# define SPARC +# define OPENBSD +# define mach_type_known +# endif # if defined(__NetBSD__) && defined(m68k) # define M68K # define NETBSD @@ -100,7 +105,8 @@ # endif # define mach_type_known # endif -# if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) +# if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) \ + && !defined(__OpenBSD__) # define SPARC # define DRSNX # define mach_type_known @@ -129,7 +135,7 @@ # define HP_PA # define mach_type_known # endif -# if defined(LINUX) && defined(i386) +# if defined(LINUX) && (defined(i386) || defined(__i386__)) # define I386 # define mach_type_known # endif @@ -141,9 +147,8 @@ # define M68K # define mach_type_known # endif -# if defined(linux) && defined(sparc) +# if defined(LINUX) && defined(sparc) # define SPARC -# define LINUX # define mach_type_known # endif # if defined(__alpha) || defined(__alpha__) @@ -153,9 +158,11 @@ # endif # define mach_type_known # endif -# if defined(_AMIGA) -# define M68K +# if defined(_AMIGA) && !defined(AMIGA) # define AMIGA +# endif +# ifdef AMIGA +# define M68K # define mach_type_known # endif # if defined(THINK_C) || defined(__MWERKS__) && !defined(__powerc) @@ -168,6 +175,11 @@ # define MACOS # define mach_type_known # endif +# if defined(macosx) +# define MACOSX +# define POWERPC +# define mach_type_known +# endif # if defined(NeXT) && defined(mc68000) # define M68K # define NEXT @@ -486,8 +498,8 @@ # ifdef POWERPC # define MACH_TYPE "POWERPC" -# define ALIGNMENT 2 # ifdef MACOS +# define ALIGNMENT 2 /* Still necessary? Could it be 4? */ # ifndef __LOWMEM__ # include # endif @@ -497,14 +509,24 @@ # define DATAEND /* not needed */ # endif # ifdef LINUX +# define ALIGNMENT 4 /* Guess. Can someone verify? */ + /* This was 2, but that didn't sound right. */ # define OS_TYPE "LINUX" # define HEURISTIC1 # undef STACK_GRAN # define STACK_GRAN 0x10000000 + /* Stack usually starts at 0x80000000 */ # define DATASTART GC_data_start extern int _end; # define DATAEND (&_end) # endif +# ifdef MACOSX +# define ALIGNMENT 4 +# define OS_TYPE "MACOSX" +# define DATASTART ((ptr_t) get_etext()) +# define STACKBOTTOM ((ptr_t) 0xc0000000) +# define DATAEND /* not needed */ +# endif # endif # ifdef VAX @@ -603,6 +625,11 @@ # define SVR4 # define STACKBOTTOM ((ptr_t) 0xf0000000) # endif +# ifdef OPENBSD +# define OS_TYPE "OPENBSD" +# define STACKBOTTOM ((ptr_t) 0xf8000000) +# define DATASTART ((ptr_t)(&etext)) +# endif # endif # ifdef I386 @@ -657,10 +684,13 @@ # endif # ifdef LINUX # define OS_TYPE "LINUX" -# define STACKBOTTOM ((ptr_t)0xc0000000) - /* Appears to be 0xe0000000 for at least one 2.1.91 kernel. */ - /* Probably needs to be more flexible, but I don't yet */ - /* fully understand how flexible. */ +# define HEURISTIC1 +# undef STACK_GRAN +# define STACK_GRAN 0x10000000 + /* STACKBOTTOM is usually 0xc0000000, but this changes with */ + /* different kernel configurations. In particular, systems */ + /* with 2GB physical memory will usually move the user */ + /* address space limit, and hence initial SP to 0x80000000. */ # if !defined(LINUX_THREADS) || !defined(REDIRECT_MALLOC) # define MPROTECT_VDB # else @@ -909,9 +939,13 @@ # define CPP_WORDSZ 64 # define STACKBOTTOM ((ptr_t) 0x120000000) # ifdef __ELF__ +# if 0 + /* __data_start apparently disappeared in some recent releases. */ extern int __data_start; # define DATASTART &__data_start -# define DYNAMIC_LOADING +# endif +# define DATASTART GC_data_start +# define DYNAMIC_LOADING # else # define DATASTART ((ptr_t) 0x140000000) # endif @@ -1019,6 +1053,10 @@ /* Presumably not worth the space it takes. */ # undef PROC_VDB # undef MPROTECT_VDB +# endif + +# ifdef USE_MUNMAP +# undef MPROTECT_VDB /* Can't deal with address space holes. */ # endif # if !defined(PCR_VDB) && !defined(PROC_VDB) && !defined(MPROTECT_VDB)