diff --git a/build-tools/scripts/Ndk.projitems.in b/build-tools/scripts/Ndk.projitems.in
index e767b8c460f..3a237cd9ad4 100644
--- a/build-tools/scripts/Ndk.projitems.in
+++ b/build-tools/scripts/Ndk.projitems.in
@@ -21,7 +21,7 @@
$(AndroidNdkApiLevel_Arm)
android-arm
True
- False
+ True
False
diff --git a/build-tools/scripts/xa_build_configuration.cmake.in b/build-tools/scripts/xa_build_configuration.cmake.in
index c7ed213f87f..cfa5a23c7dd 100644
--- a/build-tools/scripts/xa_build_configuration.cmake.in
+++ b/build-tools/scripts/xa_build_configuration.cmake.in
@@ -3,5 +3,6 @@ set(NETCORE_APP_RUNTIME_DIR_ARM64 "@NETCORE_APP_RUNTIME_ANDROID_ARM64@")
set(NETCORE_APP_RUNTIME_DIR_X86 "@NETCORE_APP_RUNTIME_ANDROID_X86@")
set(NETCORE_APP_RUNTIME_DIR_X86_64 "@NETCORE_APP_RUNTIME_ANDROID_X86_64@")
+set(CORECLR_APP_RUNTIME_DIR_ARM "@CORECLR_APP_RUNTIME_ANDROID_ARM@")
set(CORECLR_APP_RUNTIME_DIR_ARM64 "@CORECLR_APP_RUNTIME_ANDROID_ARM64@")
set(CORECLR_APP_RUNTIME_DIR_X86_64 "@CORECLR_APP_RUNTIME_ANDROID_X86_64@")
diff --git a/build-tools/xaprepare/xaprepare/Steps/Step_GenerateFiles.cs b/build-tools/xaprepare/xaprepare/Steps/Step_GenerateFiles.cs
index b7f75ef39f1..d5d0d3b17e8 100644
--- a/build-tools/xaprepare/xaprepare/Steps/Step_GenerateFiles.cs
+++ b/build-tools/xaprepare/xaprepare/Steps/Step_GenerateFiles.cs
@@ -99,6 +99,7 @@ GeneratedFile Get_Cmake_XA_Build_Configuration (Context context)
{ "@NETCORE_APP_RUNTIME_ANDROID_X86@", Utilities.EscapePathSeparators (Configurables.Paths.NetcoreAppRuntimeAndroidX86) },
{ "@NETCORE_APP_RUNTIME_ANDROID_X86_64@", Utilities.EscapePathSeparators (Configurables.Paths.NetcoreAppRuntimeAndroidX86_64) },
+ { "@CORECLR_APP_RUNTIME_ANDROID_ARM@", Utilities.EscapePathSeparators (Configurables.Paths.CoreClrAppRuntimeAndroidARM) },
{ "@CORECLR_APP_RUNTIME_ANDROID_ARM64@", Utilities.EscapePathSeparators (Configurables.Paths.CoreClrAppRuntimeAndroidARM64) },
{ "@CORECLR_APP_RUNTIME_ANDROID_X86_64@", Utilities.EscapePathSeparators (Configurables.Paths.CoreClrAppRuntimeAndroidX86_64) },
};
diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json b/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json
index 53fe8f57e0f..5de67dcdf60 100644
--- a/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json
+++ b/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json
@@ -12,6 +12,7 @@
"Microsoft.Android.Runtime.Mono.37.android-arm64",
"Microsoft.Android.Runtime.Mono.37.android-x86",
"Microsoft.Android.Runtime.Mono.37.android-x64",
+ "Microsoft.Android.Runtime.CoreCLR.37.android-arm",
"Microsoft.Android.Runtime.CoreCLR.37.android-arm64",
"Microsoft.Android.Runtime.CoreCLR.37.android-x64",
"Microsoft.Android.Runtime.NativeAOT.37.android-arm64",
@@ -78,6 +79,10 @@
"kind": "framework",
"version": "@WORKLOAD_VERSION@"
},
+ "Microsoft.Android.Runtime.CoreCLR.37.android-arm": {
+ "kind": "framework",
+ "version": "@WORKLOAD_VERSION@"
+ },
"Microsoft.Android.Runtime.CoreCLR.37.android-arm64": {
"kind": "framework",
"version": "@WORKLOAD_VERSION@"
diff --git a/src/native/CMakeLists.txt b/src/native/CMakeLists.txt
index ba9267c5623..b91d716fb32 100644
--- a/src/native/CMakeLists.txt
+++ b/src/native/CMakeLists.txt
@@ -177,9 +177,11 @@ if(IS_CLR_RUNTIME)
set(LOCAL_CORECLR_CONFIG Release)
endif()
+ set(RUNTIME_DIR_ARM "${LOCAL_CORECLR_PATH}/${CLR_PACKAGE_NAME_STEM}-arm/${LOCAL_CORECLR_CONFIG}/runtimes/android-arm")
set(RUNTIME_DIR_ARM64 "${LOCAL_CORECLR_PATH}/${CLR_PACKAGE_NAME_STEM}-arm64/${LOCAL_CORECLR_CONFIG}/runtimes/android-arm64")
set(RUNTIME_DIR_X86_64 "${LOCAL_CORECLR_PATH}/${CLR_PACKAGE_NAME_STEM}-x64/${LOCAL_CORECLR_CONFIG}/runtimes/android-x64")
else()
+ set(RUNTIME_DIR_ARM "${CORECLR_APP_RUNTIME_DIR_ARM}")
set(RUNTIME_DIR_ARM64 "${CORECLR_APP_RUNTIME_DIR_ARM64}")
set(RUNTIME_DIR_X86_64 "${CORECLR_APP_RUNTIME_DIR_X86_64}")
endif()
diff --git a/src/native/CMakePresets.json.in b/src/native/CMakePresets.json.in
index 964103d5903..926a370a3cc 100644
--- a/src/native/CMakePresets.json.in
+++ b/src/native/CMakePresets.json.in
@@ -151,11 +151,21 @@
"inherits": ["default-common", "common-debug", "common-armeabi-v7a"]
},
+ {
+ "name": "coreclr-default-debug-armeabi-v7a",
+ "inherits": ["default-common", "common-debug", "common-armeabi-v7a"]
+ },
+
{
"name": "default-release-armeabi-v7a",
"inherits": ["default-common", "common-release", "common-armeabi-v7a"]
},
+ {
+ "name": "coreclr-default-release-armeabi-v7a",
+ "inherits": ["default-common", "common-release", "common-armeabi-v7a"]
+ },
+
{
"name": "analyzers-debug-armeabi-v7a",
"hidden": true,
diff --git a/src/native/clr/host/typemap.cc b/src/native/clr/host/typemap.cc
index 85e5a37a3a5..8a52077d360 100644
--- a/src/native/clr/host/typemap.cc
+++ b/src/native/clr/host/typemap.cc
@@ -146,7 +146,7 @@ auto TypeMapper::managed_to_java_debug (const char *typeName, const uint8_t *mvi
dynamic_local_path_string full_type_name;
full_type_name.append (typeName);
- hash_t mvid_hash = xxhash::hash (mvid, 16z); // we must hope managed land called us with valid data
+ hash_t mvid_hash = xxhash::hash (reinterpret_cast(mvid), 16z); // we must hope managed land called us with valid data
auto equal = [](TypeMapAssembly const& entry, hash_t key) -> bool { return entry.mvid_hash == key; };
auto less_than = [](TypeMapAssembly const& entry, hash_t key) -> bool { return entry.mvid_hash < key; };
diff --git a/src/native/native-clr.csproj b/src/native/native-clr.csproj
index bb3445fafb0..d3ab2e1f56c 100644
--- a/src/native/native-clr.csproj
+++ b/src/native/native-clr.csproj
@@ -7,7 +7,9 @@
Exe
false
-
+
+
+
arm64:x86_64
arm64-v8a:x86_64