summaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/crossgen/crossgen.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/tools/crossgen/crossgen.cpp b/src/tools/crossgen/crossgen.cpp
index 53e5aa133b..1efc81ef2b 100644
--- a/src/tools/crossgen/crossgen.cpp
+++ b/src/tools/crossgen/crossgen.cpp
@@ -506,10 +506,15 @@ int _cdecl wmain(int argc, __in_ecount(argc) WCHAR **argv)
argv = argv2;
bool fCopySourceToOut = false;
-
+
// By default, Crossgen will assume code-generation for fulltrust domains unless /PartialTrust switch is specified
dwFlags |= NGENWORKER_FLAGS_FULLTRUSTDOMAIN;
+#ifdef FEATURE_CORECLR
+ // By default, Crossgen will generate readytorun images unless /FragileNonVersionable switch is specified
+ dwFlags |= NGENWORKER_FLAGS_READYTORUN;
+#endif
+
while (argc > 0)
{
if (MatchParameter(*argv, W("?"))
@@ -591,6 +596,10 @@ int _cdecl wmain(int argc, __in_ecount(argc) WCHAR **argv)
{
dwFlags |= NGENWORKER_FLAGS_READYTORUN;
}
+ else if (MatchParameter(*argv, W("FragileNonVersionable")))
+ {
+ dwFlags &= ~NGENWORKER_FLAGS_READYTORUN;
+ }
#endif
#ifdef FEATURE_CORECLR
else if (MatchParameter(*argv, W("NoMetaData")))
@@ -959,7 +968,10 @@ int _cdecl wmain(int argc, __in_ecount(argc) WCHAR **argv)
// Are we compiling mscorlib.dll?
bool fCompilingMscorlib = StringEndsWith((LPWSTR)pwzFilename, W("mscorlib.dll"));
-
+
+ if (fCompilingMscorlib)
+ dwFlags &= ~NGENWORKER_FLAGS_READYTORUN;
+
if(pwzPlatformAssembliesPaths != nullptr)
{
// Platform_Assemblies_Paths command line switch has been specified.