From 65c442ecc868c4e118bfd5c0aa6fcd21e310a6fe Mon Sep 17 00:00:00 2001 From: David Wrighton Date: Tue, 16 Mar 2021 17:52:40 -0700 Subject: [PATCH 1/4] Use arm jit for armel in crossgen2, and build the matching bits on all architectures --- eng/native/configurecompiler.cmake | 6 +----- src/coreclr/tools/aot/crossgen2/crossgen2.csproj | 12 ++++++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index a5dac887902eb..313a9a1cf0515 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -210,11 +210,7 @@ elseif (CLR_CMAKE_HOST_ARCH_I386) set(ARCH_HOST_NAME x86) add_definitions(-DHOST_X86) elseif (CLR_CMAKE_HOST_ARCH_ARM) - if (ARM_SOFTFP) - set(ARCH_HOST_NAME armel) - else () - set(ARCH_HOST_NAME arm) - endif () + set(ARCH_HOST_NAME arm) add_definitions(-DHOST_ARM) elseif (CLR_CMAKE_HOST_ARCH_ARM64) set(ARCH_HOST_NAME arm64) diff --git a/src/coreclr/tools/aot/crossgen2/crossgen2.csproj b/src/coreclr/tools/aot/crossgen2/crossgen2.csproj index 87e123adb1d34..6ca2d1f747b4e 100644 --- a/src/coreclr/tools/aot/crossgen2/crossgen2.csproj +++ b/src/coreclr/tools/aot/crossgen2/crossgen2.csproj @@ -61,10 +61,14 @@ unix win - $(TargetOSComponent)_$(TargetArchitecture)_$(TargetArchitecture) - $(TargetOSComponent)_$(TargetArchitecture)_$(CrossHostArch) - $(LibPrefix)jitinterface_$(TargetArchitecture)$(LibSuffix) + $(TargetArchitecture) + arm + + $(TargetOSComponent)_$(TargetArchitectureForSharedLibraries)_$(TargetArchitectureForSharedLibraries) + $(TargetOSComponent)_$(TargetArchitectureForSharedLibraries)_$(CrossHostArch) + + $(LibPrefix)jitinterface_$(TargetArchitectureForSharedLibraries)$(LibSuffix) @@ -74,7 +78,7 @@ Link="%(FileName)%(Extension)" /> - Date: Wed, 17 Mar 2021 12:21:45 -0700 Subject: [PATCH 2/4] Fix missing quote --- src/coreclr/tools/aot/crossgen2/crossgen2.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tools/aot/crossgen2/crossgen2.csproj b/src/coreclr/tools/aot/crossgen2/crossgen2.csproj index 6ca2d1f747b4e..029a36a2c2e92 100644 --- a/src/coreclr/tools/aot/crossgen2/crossgen2.csproj +++ b/src/coreclr/tools/aot/crossgen2/crossgen2.csproj @@ -63,7 +63,7 @@ win $(TargetArchitecture) - arm + arm $(TargetOSComponent)_$(TargetArchitectureForSharedLibraries)_$(TargetArchitectureForSharedLibraries) $(TargetOSComponent)_$(TargetArchitectureForSharedLibraries)_$(CrossHostArch) From f6bb8c68a7daad9227fbd2f5565ea71344fed4dc Mon Sep 17 00:00:00 2001 From: David Wrighton Date: Wed, 17 Mar 2021 12:45:13 -0700 Subject: [PATCH 3/4] Fix arch target name --- eng/native/configurecompiler.cmake | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index 313a9a1cf0515..f69c96ce333fb 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -279,11 +279,7 @@ elseif (CLR_CMAKE_TARGET_ARCH_ARM64) add_compile_definitions($<$>>:TARGET_64BIT>) elseif (CLR_CMAKE_TARGET_ARCH_ARM) set(ARCH_SOURCES_DIR arm) - if (ARM_SOFTFP) - set(ARCH_TARGET_NAME armel) - else () - set(ARCH_TARGET_NAME arm) - endif () + set(ARCH_TARGET_NAME arm) add_compile_definitions($<$>>:TARGET_ARM>) elseif (CLR_CMAKE_TARGET_ARCH_I386) set(ARCH_TARGET_NAME x86) From c4336e19f4aa11ddc326109264eabfa88296a047 Mon Sep 17 00:00:00 2001 From: David Wrighton Date: Thu, 18 Mar 2021 14:29:19 -0700 Subject: [PATCH 4/4] Adjust defines a bit more --- src/coreclr/jit/CMakeLists.txt | 3 +++ src/coreclr/jit/compiler.cpp | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/coreclr/jit/CMakeLists.txt b/src/coreclr/jit/CMakeLists.txt index 570a2e9946929..3eb595b9eaded 100644 --- a/src/coreclr/jit/CMakeLists.txt +++ b/src/coreclr/jit/CMakeLists.txt @@ -496,6 +496,9 @@ if (CLR_CMAKE_BUILD_SUBSET_ALLJITS AND NOT CLR_CROSS_COMPONENTS_BUILD) else() if (CLR_CMAKE_TARGET_UNIX) create_standalone_jit(TARGET clrjit_unix_${ARCH_TARGET_NAME}_${ARCH_HOST_NAME} OS unix ARCH ${ARCH_TARGET_NAME}) + if (ARCH_TARGET_NAME STREQUAL arm) + target_compile_definitions(clrjit_unix_arm_${ARCH_HOST_NAME} PRIVATE ARM_SOFTFP CONFIGURABLE_ARM_ABI) + endif (ARCH_TARGET_NAME STREQUAL arm) endif(CLR_CMAKE_TARGET_UNIX) endif (CLR_CMAKE_BUILD_SUBSET_ALLJITS AND NOT CLR_CROSS_COMPONENTS_BUILD) diff --git a/src/coreclr/jit/compiler.cpp b/src/coreclr/jit/compiler.cpp index e1be2ce02a039..85d17860cee8e 100644 --- a/src/coreclr/jit/compiler.cpp +++ b/src/coreclr/jit/compiler.cpp @@ -3241,10 +3241,10 @@ void Compiler::compInitOptions(JitFlags* jitFlags) } GlobalJitOptions::compFeatureHfa = !opts.compUseSoftFP; -#elif defined(ARM_SOFTFP) +#elif defined(ARM_SOFTFP) && defined(TARGET_ARM) // Armel is unconditionally enabled in the JIT. Verify that the VM side agrees. assert(jitFlags->IsSet(JitFlags::JIT_FLAG_SOFTFP_ABI)); -#elif TARGET_ARM +#elif defined(TARGET_ARM) assert(!jitFlags->IsSet(JitFlags::JIT_FLAG_SOFTFP_ABI)); #endif // CONFIGURABLE_ARM_ABI