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 STACKBOTTOM ((ptr_t) pthread_get_stackaddr_np(pthread_self()))
+#ifndef USE_MMAP
# define USE_MMAP
+#endif
# define USE_MMAP_ANON
# define USE_ASM_PUSH_REGS
/* This is potentially buggy. It needs more testing. See the comments in
# ifdef NACL
# define OS_TYPE "NACL"
extern int etext[];
-# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
+//# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
+# define DATASTART ((ptr_t)0x10000000)
extern int _end[];
# define DATAEND (_end)
# ifdef STACK_GRAN
# define DYNAMIC_LOADING
extern int _end[];
# define DATAEND (_end)
+#pragma weak __data_start
extern int __data_start[];
# define DATASTART ((ptr_t)(__data_start))
# if defined(_MIPS_SZPTR) && (_MIPS_SZPTR == 64)