diff options
author | Sandro Tolaini <tolaini@libero.it> | 2006-09-22 01:47:30 +0200 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2006-09-21 23:47:30 +0000 |
commit | de7a014db379cbfc0c7cf8f6d2bddc9e19f688e5 (patch) | |
tree | a59b18d3ecba84a151dd5bfc21322ecb5bb4fd21 /boehm-gc/include | |
parent | b76d34e959674bb91653ca0fc86cdf9a4dabf075 (diff) | |
download | gcc-de7a014db379cbfc0c7cf8f6d2bddc9e19f688e5.zip gcc-de7a014db379cbfc0c7cf8f6d2bddc9e19f688e5.tar.gz gcc-de7a014db379cbfc0c7cf8f6d2bddc9e19f688e5.tar.bz2 |
os_dep.c: Port to Darwin/i386
2006-09-21 Sandro Tolaini <tolaini@libero.it>
* os_dep.c: Port to Darwin/i386
* darwin_stop_world.c: Likewise
* include/private/gcconfig.h: Likewise
From-SVN: r117126
Diffstat (limited to 'boehm-gc/include')
-rw-r--r-- | boehm-gc/include/private/gcconfig.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h index d7d96b1..26db82e 100644 --- a/boehm-gc/include/private/gcconfig.h +++ b/boehm-gc/include/private/gcconfig.h @@ -304,7 +304,7 @@ # define mach_type_known # elif defined(__i386__) # define I386 - --> Not really supported, but at least we recognize it. +# define mach_type_known # endif # endif # if defined(NeXT) && defined(mc68000) @@ -1308,6 +1308,29 @@ /* # define MPROTECT_VDB Not quite working yet? */ # define DYNAMIC_LOADING # endif +# ifdef DARWIN +# define OS_TYPE "DARWIN" +# define DARWIN_DONT_PARSE_STACK +# define DYNAMIC_LOADING + /* XXX: see get_end(3), get_etext() and get_end() should not be used. + These aren't used when dyld support is enabled (it is by default) */ +# define DATASTART ((ptr_t) get_etext()) +# define DATAEND ((ptr_t) get_end()) +# define STACKBOTTOM ((ptr_t) 0xc0000000) +# define USE_MMAP +# define USE_MMAP_ANON +# define USE_ASM_PUSH_REGS + /* This is potentially buggy. It needs more testing. See the comments in + os_dep.c. It relies on threads to track writes. */ +# ifdef GC_DARWIN_THREADS +/* # define MPROTECT_VDB -- disabled for now. May work for some apps. */ +# endif +# include <unistd.h> +# define GETPAGESIZE() getpagesize() + /* There seems to be some issues with trylock hanging on darwin. This + should be looked into some more */ +# define NO_PTHREAD_TRYLOCK +# endif /* DARWIN */ # endif # ifdef NS32K |