summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyungwoo Lee <kyulee@microsoft.com>2016-07-07 14:42:44 -0700
committerKyungwoo Lee <kyulee@microsoft.com>2016-07-15 06:26:02 -0700
commit0ed4e675a303a8944ec4c99c03058b99d8ff9548 (patch)
tree255a994406843546a8e3acea9cc5c39bda1269cc
parent59b0355f4f4308c34610ded81f4d00fe3070d0ee (diff)
downloadcoreclr-0ed4e675a303a8944ec4c99c03058b99d8ff9548.tar.gz
coreclr-0ed4e675a303a8944ec4c99c03058b99d8ff9548.tar.bz2
coreclr-0ed4e675a303a8944ec4c99c03058b99d8ff9548.zip
ARM64: Cross-Target Jit
Fixes https://github.com/dotnet/coreclr/issues/6279 Fixes https://github.com/dotnet/coreclr/issues/6280 - This builds x64_arm64 clrjit.dll - crossgen is not statically linked to jit anymore. It needs clrjit.dll dynamically - Adding this cross-component binary into Jit pacakge. So, clrjit.dll (native-target) is consumed by coreclr or crossgen (native-target) clrjit.dll (cross-target) is consumed by crossgen (cross-target). Likewise, later this cross-target clrjit.dll can be used for corert targeting arm64 so that we can generate arm64 code on host machine (x64).
-rw-r--r--clrdefinitions.cmake7
-rw-r--r--crosscomponents.cmake1
-rw-r--r--src/.nuget/Microsoft.NETCore.Jit/win/Microsoft.NETCore.Jit.pkgproj9
3 files changed, 10 insertions, 7 deletions
diff --git a/clrdefinitions.cmake b/clrdefinitions.cmake
index 3785f633b9..5ff9be4647 100644
--- a/clrdefinitions.cmake
+++ b/clrdefinitions.cmake
@@ -132,13 +132,6 @@ add_definitions(-DFEATURE_MANAGED_ETW_CHANNELS)
add_definitions(-DFEATURE_MAIN_CLR_MODULE_USES_CORE_NAME)
add_definitions(-DFEATURE_MERGE_CULTURE_SUPPORT_AND_ENGINE)
-if(CLR_CMAKE_TARGET_ARCH_ARM64)
- # TODO_DJIT: Remove this as part of enabling cross-compiling standalone JIT binary.
- if (NOT CLR_CMAKE_PLATFORM_UNIX)
- set(FEATURE_MERGE_JIT_AND_ENGINE 1)
- endif(NOT CLR_CMAKE_PLATFORM_UNIX)
-endif(CLR_CMAKE_TARGET_ARCH_ARM64)
-
if(FEATURE_MERGE_JIT_AND_ENGINE)
# Disable the following for UNIX altjit on Windows
add_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE)
diff --git a/crosscomponents.cmake b/crosscomponents.cmake
index 158173e307..e0d5c1a939 100644
--- a/crosscomponents.cmake
+++ b/crosscomponents.cmake
@@ -5,4 +5,5 @@ set (CLR_CROSS_COMPONENTS_LIST
mscordaccore
mscordbi
sos
+ clrjit
)
diff --git a/src/.nuget/Microsoft.NETCore.Jit/win/Microsoft.NETCore.Jit.pkgproj b/src/.nuget/Microsoft.NETCore.Jit/win/Microsoft.NETCore.Jit.pkgproj
index fd799b10dd..cda00784ad 100644
--- a/src/.nuget/Microsoft.NETCore.Jit/win/Microsoft.NETCore.Jit.pkgproj
+++ b/src/.nuget/Microsoft.NETCore.Jit/win/Microsoft.NETCore.Jit.pkgproj
@@ -9,9 +9,13 @@
</PropertyGroup>
<ItemGroup>
<ArchitectureSpecificNativeFile Include="$(BinDir)clrjit.dll" />
+ <CrossArchitectureSpecificNativeFile Include="$(BinDir)$(CrossTargetComponentFolder)\clrjit.dll" />
<File Include="@(ArchitectureSpecificNativeFile)">
<TargetPath>runtimes/$(PackageTargetRuntime)/native</TargetPath>
</File>
+ <File Condition="'$(HasCrossTargetComponents)' == 'true'" Include="@(CrossArchitectureSpecificNativeFile)">
+ <TargetPath>runtimes/$(CrossTargetComponentFolder)_$(PackagePlatform)/native</TargetPath>
+ </File>
</ItemGroup>
<ItemGroup>
<!-- prevent accidental inclusion in AOT projects. -->
@@ -22,10 +26,15 @@
<ArchitectureSpecificNativeSymbol Include="@(ArchitectureSpecificNativeFile -> '%(RelativeDir)PDB\%(FileName).pdb')" />
<AdditionalSymbolPackageExcludes Include="%2A%2A\%2A.dll" />
<ArchitectureSpecificNativeSymbol Include="..\_.pdb" />
+ <CrossArchitectureSpecificNativeSymbol Condition="'$(HasCrossTargetComponents)' == 'true'" Include="@(CrossArchitectureSpecificNativeFile -> '%(RelativeDir)PDB\%(FileName).pdb')" />
<File Include="@(ArchitectureSpecificNativeSymbol)">
<TargetPath>runtimes/$(PackageTargetRuntime)/native</TargetPath>
<IsSymbolFile>true</IsSymbolFile>
</File>
+ <File Condition="'$(HasCrossTargetComponents)' == 'true'" Include="@(CrossArchitectureSpecificNativeSymbol)">
+ <TargetPath>runtimes/$(CrossTargetComponentFolder)_$(PackagePlatform)/native</TargetPath>
+ <IsSymbolFile>true</IsSymbolFile>
+ </File>
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
</Project>