aboutsummaryrefslogtreecommitdiff
path: root/boehm-gc/include
diff options
context:
space:
mode:
authorSandro Tolaini <tolaini@libero.it>2006-09-22 01:47:30 +0200
committerTom Tromey <tromey@gcc.gnu.org>2006-09-21 23:47:30 +0000
commitde7a014db379cbfc0c7cf8f6d2bddc9e19f688e5 (patch)
treea59b18d3ecba84a151dd5bfc21322ecb5bb4fd21 /boehm-gc/include
parentb76d34e959674bb91653ca0fc86cdf9a4dabf075 (diff)
downloadgcc-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.h25
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