X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fdriver.c;h=dc73ec4fbfe172e1458975061a0112709c2c5216;hb=1e726ce7a38a92860acab28f4427813d2ba14c13;hp=7a4c4de4f62182987f8b7014fd246dff189ab226;hpb=619814783219692bf5d4e0ba54e737212814080f;p=mono.git diff --git a/mono/mini/driver.c b/mono/mini/driver.c index 7a4c4de4f62..dc73ec4fbfe 100644 --- a/mono/mini/driver.c +++ b/mono/mini/driver.c @@ -138,7 +138,7 @@ extern char *nacl_mono_path; MONO_OPT_SIMD | \ MONO_OPT_AOT) -#define EXCLUDED_FROM_ALL (MONO_OPT_SHARED | MONO_OPT_PRECOMP | MONO_OPT_UNSAFE) +#define EXCLUDED_FROM_ALL (MONO_OPT_SHARED | MONO_OPT_PRECOMP | MONO_OPT_UNSAFE | MONO_OPT_GSHAREDVT) static guint32 parse_optimizations (const char* p) @@ -1423,6 +1423,9 @@ mono_main (int argc, char* argv[]) #ifdef HOST_WIN32 int mixed_mode = FALSE; #endif +#ifdef __native_client__ + gboolean nacl_null_checks_off = FALSE; +#endif #ifdef MOONLIGHT #ifndef HOST_WIN32 @@ -1727,6 +1730,8 @@ mono_main (int argc, char* argv[]) #ifdef __native_client__ } else if (strcmp (argv [i], "--nacl-mono-path") == 0){ nacl_mono_path = g_strdup(argv[++i]); + } else if (strcmp (argv [i], "--nacl-null-checks-off") == 0){ + nacl_null_checks_off = TRUE; #endif } else { fprintf (stderr, "Unknown command line option: '%s'\n", argv [i]); @@ -1739,6 +1744,10 @@ mono_main (int argc, char* argv[]) { nacl_align_byte = -1; /* 0xff */ } + if (!nacl_null_checks_off) { + MonoDebugOptions *opt = mini_get_debug_options (); + opt->explicit_null_checks = TRUE; + } #endif if (!argv [i]) { @@ -1950,7 +1959,7 @@ mono_main (int argc, char* argv[]) * This used to be an amd64 only crash, but it looks like now most glibc targets do unwinding * that requires reading the target code. */ -#ifdef __linux__ +#if defined( __linux__ ) || defined( __native_client__ ) mono_dont_free_global_codeman = TRUE; #endif