type %__CrossGenCoreLibLog%
goto CrossgenFailure
)
+ echo "%__CrossgenExe%" /Platform_Assemblies_Paths "%__BinDir%" /CreatePdb "%__BinDir%\PDB" "%__BinDir%\System.Private.CoreLib.dll"
"%__CrossgenExe%" /Platform_Assemblies_Paths "%__BinDir%" /CreatePdb "%__BinDir%\PDB" "%__BinDir%\System.Private.CoreLib.dll" >> "%__CrossGenCoreLibLog%" 2>&1
if NOT !errorlevel! == 0 (
echo %__MsgPrefix%Error: CrossGen /CreatePdb System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
W(" /? or /help - Display this screen\n")
W(" /nologo - Prevents displaying the logo\n")
W(" /silent - Do not display completion message\n")
+ W(" /verbose - Display verbose information\n")
W(" @response.rsp - Process command line arguments from specified\n")
W(" response file\n")
W(" /partialtrust - Assembly will be run in a partial trust domain.\n")
{
dwFlags |= NGENWORKER_FLAGS_SILENT;
}
+ else if (MatchParameter(*argv, W("verbose")))
+ {
+ dwFlags |= NGENWORKER_FLAGS_VERBOSE;
+ }
else if (MatchParameter(*argv, W("Tuning")))
{
dwFlags |= NGENWORKER_FLAGS_TUNING;
argv++;
argc--;
- // Clear the /fulltrust flag - /CreatePDB does not work with any other flags.
+ // Clear any extra flags - using /CreatePDB fails if any of these are set.
dwFlags = dwFlags & ~(NGENWORKER_FLAGS_FULLTRUSTDOMAIN | NGENWORKER_FLAGS_READYTORUN);
// Parse: <directory to store PDB>
if (g_CorCompileVerboseLevel == CORCOMPILE_VERBOSE)
{
- DefineFullyQualifiedNameForClass();
- LPCUTF8 name = GetFullyQualifiedNameForClass(this);
- printf ("MethodTable %s needs restore? ", name);
+ DefineFullyQualifiedNameForClassW();
+ LPCWSTR name = GetFullyQualifiedNameForClassW(this);
+ WszOutputDebugString(W("MethodTable "));
+ WszOutputDebugString(name);
+ WszOutputDebugString(W(" needs restore? "));
}
if (g_CorCompileVerboseLevel >= CORCOMPILE_STATS && GetModule()->GetNgenStats())
GetModule()->GetNgenStats()->MethodTableRestoreNumReasons[TotalMethodTables]++;
- #define UPDATE_RESTORE_REASON(c) \
- if (g_CorCompileVerboseLevel == CORCOMPILE_VERBOSE) \
- printf ("Yes, " #c " \n"); \
- if (g_CorCompileVerboseLevel >= CORCOMPILE_STATS && GetModule()->GetNgenStats()) \
- GetModule()->GetNgenStats()->MethodTableRestoreNumReasons[c]++;
+ #define UPDATE_RESTORE_REASON(ARG) \
+ if (g_CorCompileVerboseLevel == CORCOMPILE_VERBOSE) \
+ { WszOutputDebugString(W("Yes, ")); WszOutputDebugString(W(#ARG "\n")); } \
+ if (g_CorCompileVerboseLevel >= CORCOMPILE_STATS && GetModule()->GetNgenStats()) \
+ GetModule()->GetNgenStats()->MethodTableRestoreNumReasons[ARG]++;
// The special method table for IL stubs has to be prerestored. Restore is not able to handle it
// because of it does not have a token. In particular, this is a problem for /profiling native images.
}
if (g_CorCompileVerboseLevel == CORCOMPILE_VERBOSE)
- printf ("No \n");
+ {
+ WszOutputDebugString(W("No\n"));
+ }
return FALSE;
}