|
|
@@ -304,7 +304,28 @@
|
|
|
# define mach_type_known
|
|
|
# elif defined(__i386__)
|
|
|
# define I386
|
|
|
- --> Not really supported, but at least we recognize it.
|
|
|
+# define mach_type_known
|
|
|
+# define DARWIN_DONT_PARSE_STACK
|
|
|
+# define OS_TYPE "DARWIN"
|
|
|
+# 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 -- diabled 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
|
|
|
# endif
|
|
|
# if defined(NeXT) && defined(mc68000)
|