=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/gc/include/private/gcconfig.h,v retrieving revision 1.9 retrieving revision 1.13 diff -u -p -r1.9 -r1.13 --- OpenXM_contrib2/asir2000/gc/include/private/gcconfig.h 2003/06/24 05:11:42 1.9 +++ OpenXM_contrib2/asir2000/gc/include/private/gcconfig.h 2004/02/13 05:48:36 1.13 @@ -26,6 +26,9 @@ # define GCCONFIG_H +/* added by noro */ +#define LARGE_CONFIG + # ifndef GC_PRIVATE_H /* Fake ptr_t declaration, just to avoid compilation errors. */ /* This avoids many instances if "ifndef GC_PRIVATE_H" below. */ @@ -60,6 +63,12 @@ # endif /* Determine the machine type: */ +/* T.Saito */ +# if defined(FREEBSD) && defined(__amd64__) +# define X86_64 +# define mach_type_known +# endif + # if defined(__XSCALE__) # define ARM32 # if !defined(LINUX) @@ -957,6 +966,8 @@ # define PROC_VDB # endif # define DYNAMIC_LOADING +/* added by noro */ +# define USE_MMAP # if !defined(USE_MMAP) && defined(REDIRECT_MALLOC) # define USE_MMAP /* Otherwise we now use calloc. Mmap may result in the */ @@ -1793,6 +1804,28 @@ # define PREFETCH_FOR_WRITE(x) \ __asm__ __volatile__ (" prefetchw %0": : "m"(*(char *)(x))) # endif +# ifdef FREEBSD /* T.Saito */ +# define OS_TYPE "FREEBSD" +# ifndef GC_FREEBSD_THREADS +# define MPROTECT_VDB +# endif +# define SIG_SUSPEND SIGUSR1 +# define SIG_THR_RESTART SIGUSR2 +# define FREEBSD_STACKBOTTOM +# ifdef __ELF__ +# define DYNAMIC_LOADING +# endif + extern int _etext[]; + extern char etext[]; + extern char edata[]; + extern char end[]; + extern char * GC_FreeBSDGetDataStart(); +# define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff)) +# define NEED_FIND_LIMIT +# define DATAEND (GC_find_limit (DATASTART, TRUE)) +# define DATASTART2 ((ptr_t)(&edata)) +# define DATAEND2 ((ptr_t)(&end)) +# endif /* end T.Saito */ # endif #if defined(LINUX) && defined(REDIRECT_MALLOC)