=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/gc/include/private/gcconfig.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -p -r1.12 -r1.13 --- OpenXM_contrib2/asir2000/gc/include/private/gcconfig.h 2003/10/08 00:32:35 1.12 +++ OpenXM_contrib2/asir2000/gc/include/private/gcconfig.h 2004/02/13 05:48:36 1.13 @@ -63,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) @@ -1798,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)