(Reworked commit
a0347f0 from 'mono_libgc' branch)
* include/private/gcconfig.h (GC_DONT_REGISTER_MAIN_STATIC_DATA):
Recognize new macro.
* include/private/gcconfig.h (DYNAMIC_LOADING): Do not define for
Darwin/arm if GC_DONT_REGISTER_MAIN_STATIC_DATA.
* misc.c (GC_REGISTER_MAIN_STATIC_DATA): Define to FALSE if
GC_DONT_REGISTER_MAIN_STATIC_DATA (and not DYNAMIC_LOADING).
# ifdef DARWIN
/* iPhone */
# define OS_TYPE "DARWIN"
-# define DYNAMIC_LOADING
+# ifndef GC_DONT_REGISTER_MAIN_STATIC_DATA
+# define DYNAMIC_LOADING
+# endif
# define DATASTART ((ptr_t) get_etext())
# define DATAEND ((ptr_t) get_end())
# define STACKBOTTOM ((ptr_t) 0x30000000)
/* We need to register the main data segment. Returns TRUE unless */
/* this is done implicitly as part of dynamic library registration. */
# define GC_REGISTER_MAIN_STATIC_DATA() GC_register_main_static_data()
+#elif defined(GC_DONT_REGISTER_MAIN_STATIC_DATA)
+# define GC_REGISTER_MAIN_STATIC_DATA() FALSE
#else
/* Don't unnecessarily call GC_register_main_static_data() in case */
/* dyn_load.c isn't linked in. */