/* And one for Darwin: */
# if defined(macosx) || (defined(__APPLE__) && defined(__MACH__))
# define DARWIN
+# include <TargetConditionals.h>
# endif
/* Determine the machine type: */
# elif defined(__arm__)
# define ARM32
# define mach_type_known
-# define DARWIN_DONT_PARSE_STACK
# elif defined(__aarch64__)
# define AARCH64
# define mach_type_known
-# define DARWIN_DONT_PARSE_STACK
# endif
# endif
# if defined(__rtems__) && (defined(i386) || defined(__i386__))
# ifdef DARWIN
# define OS_TYPE "DARWIN"
# define DARWIN_DONT_PARSE_STACK
-# define DYNAMIC_LOADING
+# ifndef GC_DONT_REGISTER_MAIN_STATIC_DATA
+# define DYNAMIC_LOADING
+# endif
/* 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())
/* There seems to be some issues with trylock hanging on darwin. */
/* This should be looked into some more. */
# define NO_PTHREAD_TRYLOCK
+# if TARGET_OS_IPHONE && !defined(NO_DYLD_BIND_FULLY_IMAGE)
+ /* iPhone/iPad simulator */
+# define NO_DYLD_BIND_FULLY_IMAGE
+# endif
# endif /* DARWIN */
# endif
# ifdef DARWIN
/* iOS */
# define OS_TYPE "DARWIN"
+# define DARWIN_DONT_PARSE_STACK
# ifndef GC_DONT_REGISTER_MAIN_STATIC_DATA
# define DYNAMIC_LOADING
# endif
/* FIXME: There seems to be some issues with trylock hanging on */
/* darwin. This should be looked into some more. */
# define NO_PTHREAD_TRYLOCK
-# ifndef NO_DYLD_BIND_FULLY_IMAGE
+# if TARGET_OS_IPHONE && !defined(NO_DYLD_BIND_FULLY_IMAGE)
# define NO_DYLD_BIND_FULLY_IMAGE
# endif
# endif
# define SEARCH_FOR_DATA_START
# endif
# ifdef DARWIN
- /* iPhone */
+ /* iOS */
# define OS_TYPE "DARWIN"
+# define DARWIN_DONT_PARSE_STACK
# ifndef GC_DONT_REGISTER_MAIN_STATIC_DATA
# define DYNAMIC_LOADING
# endif
/* FIXME: There seems to be some issues with trylock hanging on */
/* darwin. This should be looked into some more. */
# define NO_PTHREAD_TRYLOCK
-# ifndef NO_DYLD_BIND_FULLY_IMAGE
+# if TARGET_OS_IPHONE && !defined(NO_DYLD_BIND_FULLY_IMAGE)
# define NO_DYLD_BIND_FULLY_IMAGE
# endif
# endif
# ifdef DARWIN
# define OS_TYPE "DARWIN"
# define DARWIN_DONT_PARSE_STACK
-# define DYNAMIC_LOADING
+# ifndef GC_DONT_REGISTER_MAIN_STATIC_DATA
+# define DYNAMIC_LOADING
+# endif
/* 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())
/* There seems to be some issues with trylock hanging on darwin. */
/* This should be looked into some more. */
# define NO_PTHREAD_TRYLOCK
+# if TARGET_OS_IPHONE && !defined(NO_DYLD_BIND_FULLY_IMAGE)
+ /* iPhone/iPad simulator */
+# define NO_DYLD_BIND_FULLY_IMAGE
+# endif
# endif
# ifdef FREEBSD
# define OS_TYPE "FREEBSD"