diff -ru bdwgc.orig/include/private/gcconfig.h bdwgc/include/private/gcconfig.h --- bdwgc.orig/include/private/gcconfig.h +++ bdwgc/include/private/gcconfig.h @@ -102,6 +102,27 @@ EXTERN_C_BEGIN # define LINUX #endif +# if defined(__midipix__) +# define MIDIPIX +# include +# include + +# include +# include +# include + +int __gc_data_start_mark__[1]; +int __gc_data_end_mark__[1]; +#endif + +# ifdef MIDIPIX +# define OS_TYPE "MIDIPIX" +# define DATASTART ((ptr_t)__gc_data_start_mark__) +# define DATAEND ((ptr_t)__gc_data_end_mark__) +# define STACKBOTTOM (ptr_t)(((nt_tib *)pe_get_teb_address())->stack_base) +# define USE_MMAP_ANON +# endif + /* And one for NetBSD: */ #if defined(__NetBSD__) # define NETBSD @@ -505,7 +526,7 @@ EXTERN_C_BEGIN # define mach_type_known #elif (defined(__i386__) || defined(i386) || defined(__X86__)) \ && (defined(ANY_BSD) || defined(DARWIN) || defined(EMBOX) \ - || defined(LINUX) || defined(QNX)) + || defined(LINUX) || defined(QNX) || defined(MIDIPIX)) # define I386 # define mach_type_known #elif (defined(__ia64) || defined(__ia64__)) && defined(LINUX) @@ -558,7 +579,7 @@ EXTERN_C_BEGIN #elif (defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) \ || defined(__X86_64__)) \ && (defined(ANY_BSD) || defined(COSMO) || defined(DARWIN) \ - || defined(LINUX) || defined(QNX)) + || defined(LINUX) || defined(QNX) || defined(MIDIPIX)) # define X86_64 # define mach_type_known #endif @@ -1540,6 +1561,13 @@ extern char *_STACKTOP; # define DATAEND ((ptr_t)(&_end)) # define GETPAGESIZE() 4096 # endif +# ifdef MIDIPIX +# define OS_TYPE "MIDIPIX" +# define DATASTART ((ptr_t)__gc_data_start_mark__) +# define DATAEND ((ptr_t)__gc_data_end_mark__) +# define STACKBOTTOM (ptr_t)(((nt_tib *)pe_get_teb_address())->stack_base) +# define USE_MMAP_ANON +# endif # ifdef DARWIN # define DARWIN_DONT_PARSE_STACK 1 # define STACKBOTTOM ((ptr_t)0xc0000000) @@ -2604,7 +2632,7 @@ EXTERN_C_BEGIN #if defined(AIX) || defined(ANY_BSD) || defined(BSD) || defined(COSMO) \ || defined(DARWIN) || defined(DGUX) || defined(HAIKU) || defined(HPUX) \ || defined(HURD) || defined(IRIX5) || defined(LINUX) || defined(OSF1) \ - || defined(QNX) || defined(SVR4) + || defined(QNX) || defined(SVR4) || defined(MIDIPIX) # define UNIX_LIKE /* Basic Unix-like system calls work. */ #endif