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
# 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)