diff --git a/eng/Subsets.props b/eng/Subsets.props
index 43843ea213934..631bd533723cf 100644
--- a/eng/Subsets.props
+++ b/eng/Subsets.props
@@ -54,7 +54,7 @@
- clr.runtime+clr.jit+clr.alljits+linuxdac+clr.corelib+clr.nativecorelib+clr.tools+clr.packages
+ clr.runtime+clr.jit+clr.alljits+linuxdac+clr.corelib+clr.tools+clr.nativecorelib+clr.packages
mono.llvm+
mono.llvm+
@@ -191,17 +191,19 @@
-
-
-
-
-
-
+ $(CoreClrProjectRoot)src\tools\r2rtest\R2RTest.csproj;
+ $(CoreClrProjectRoot)src\tools\aot\crossgen2\crossgen2.csproj" Category="clr" />
+
+
+
+
+
+
diff --git a/src/coreclr/crossgen-corelib.proj b/src/coreclr/crossgen-corelib.proj
index bf26cd259a8c5..6144cbfaf08ee 100644
--- a/src/coreclr/crossgen-corelib.proj
+++ b/src/coreclr/crossgen-corelib.proj
@@ -3,21 +3,101 @@
-
- <_CoreClrBuildArg Condition="'$(TargetArchitecture)' != ''" Include="-$(TargetArchitecture)" />
- <_CoreClrBuildArg Include="-$(Configuration.ToLower())" />
- <_CoreClrBuildArg Condition="!$([MSBuild]::IsOsPlatform(Windows))" Include="-os $(TargetOS)" />
- <_CoreClrBuildArg Condition="'$(CrossBuild)' == 'true'" Include="-cross" />
- <_CoreClrBuildArg Condition="'$(PortableBuild)' != 'true'" Include="-portablebuild=false" />
-
+
+
+ false
+
+ $(TargetOS).$(TargetArchitecture).$(Configuration)
+ $(RepoRoot)\artifacts
+ $(RootBinDir)\log
+ $(RootBinDir)\bin\coreclr\$(OSPlatformConfig)
+ $(RootBinDir)\obj\coreclr\$(OSPlatformConfig)
+ $(LogsDir)\CrossgenCoreLib_$(TargetOS)__$(TargetArchitecture)__$(Configuration).log
+ .exe
+ $(RepoRoot)/dotnet.sh
+ $(RepoRoot)\dotnet.cmd
+
+ System.Private.CoreLib
+ $(BinDir)\IL\$(CoreLibAssemblyName).dll
+ $(BinDir)\$(CoreLibAssemblyName).dll
+
+
+ x64
+ x86
+ $(BuildArchitecture)
+
+ true
+ false
+
+ false
+ true
+
+ false
+ true
+
+ $(BinDir)\$(CrossDir)\crossgen$(ExeExtension)
+ $(CrossGen1Cmd) /nologo
+ $(CrossGen1Cmd)
+ $(CrossGen1Cmd) /Platform_Assemblies_Paths "$(BinDir)\IL"
+
+
+
+
+
- <_CoreClrBuildScript Condition="$([MSBuild]::IsOsPlatform(Windows))">crossgen-corelib.cmd
- <_CoreClrBuildScript Condition="!$([MSBuild]::IsOsPlatform(Windows))">crossgen-corelib.sh
+ $(DotNetCli) $(BinDir)\$(CrossDir)\crossgen2\crossgen2.dll
+ $(CrossGenDllCmd) -o:$(CoreLibOutputPath)
+ $(CrossGenDllCmd) -r:$(BinDir)\IL\*.dll
+ $(CrossGenDllCmd) --targetarch:$(TargetArchitecture)
+ $(CrossGenDllCmd) -O
+ $(CrossGenDllCmd) $(CoreLibInputPath)
-
-
+
+ $(CrossGen1Cmd) /out "$(CoreLibOutputPath)"
+ $(CrossGenDllCmd) "$(CoreLibInputPath)"
+
+
+
+
+
+ $(CrossGen1Cmd) /CreatePerfMap "$(BinDir)"
+ $(CrossGenPerfMapCmd) "$(CoreLibOutputPath)"
+
+
+
+ $(DotNetCli) $(BinDir)\r2rdump\r2rdump.dll
+ $(CrossGenPdbCmd) --create-pdb
+ $(CrossGenPdbCmd) --pdb-path:$(BinDir)\PDB
+ $(CrossGenPdbCmd) --in:$(CoreLibOutputPath)
+
+
+
+ call $(RepoRoot)\src\coreclr\setup_vs_tools.cmd &&
+
+ $(VsSetupCmd) $(CrossGen1Cmd) /CreatePdb "$(BinDir)\PDB"
+ $(CrossGenPdbCmd) "$(CoreLibOutputPath)"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/coreclr/src/tools/r2rdump/R2RDump.csproj b/src/coreclr/src/tools/r2rdump/R2RDump.csproj
index 0b575b257ff2a..46b8e0c6eaa50 100644
--- a/src/coreclr/src/tools/r2rdump/R2RDump.csproj
+++ b/src/coreclr/src/tools/r2rdump/R2RDump.csproj
@@ -4,7 +4,8 @@
1.0.0.0
true
Exe
- AnyCPU
+ x64;x86;arm64;arm
+ AnyCPU
Open
true
$(NetCoreAppToolCurrent)
@@ -12,7 +13,6 @@
8002,NU1701
win-x64;win-x86
$(RuntimeBinDir)/R2RDump
- AnyCPU;x64