# $OpenXM: OpenXM/src/gc/gc6_amd64.diff,v 1.1 2005/07/28 07:00:52 ohara Exp $ --- include/private/gcconfig.h 2005-05-21 05:48:29.000000000 +0900 +++ include/private/gcconfig.h 2005-07-11 18:18:53.000000000 +0900 @@ -60,6 +60,11 @@ # endif /* Determine the machine type: */ +/* T.Saito */ +# if defined(FREEBSD) && defined(__amd64__) +# define X86_64 +# define mach_type_known +# endif # if defined(__arm__) || defined(__thumb__) # define ARM32 # if !defined(LINUX) && !defined(NETBSD) @@ -1936,6 +1943,28 @@ extern char etext[]; # define SEARCH_FOR_DATA_START # 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(USE_MMAP)