diff options
author | Kyungwoo Lee <kyulee@microsoft.com> | 2016-07-07 14:42:44 -0700 |
---|---|---|
committer | Kyungwoo Lee <kyulee@microsoft.com> | 2016-07-15 06:26:02 -0700 |
commit | 0ed4e675a303a8944ec4c99c03058b99d8ff9548 (patch) | |
tree | 255a994406843546a8e3acea9cc5c39bda1269cc | |
parent | 59b0355f4f4308c34610ded81f4d00fe3070d0ee (diff) | |
download | coreclr-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.cmake | 7 | ||||
-rw-r--r-- | crosscomponents.cmake | 1 | ||||
-rw-r--r-- | src/.nuget/Microsoft.NETCore.Jit/win/Microsoft.NETCore.Jit.pkgproj | 9 |
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> |