From 056888243662926c19f797598c78aeb4c523bf07 Mon Sep 17 00:00:00 2001 From: Ivan Povazan Date: Wed, 9 Apr 2025 17:23:08 +0200 Subject: [PATCH 1/4] Do not build or ship standalone GC libs for coreclr android --- src/coreclr/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/CMakeLists.txt b/src/coreclr/CMakeLists.txt index ed016fad7214f1..a85241b17d3085 100644 --- a/src/coreclr/CMakeLists.txt +++ b/src/coreclr/CMakeLists.txt @@ -29,7 +29,7 @@ if(CORECLR_SET_RPATH) set(MACOSX_RPATH ON) endif(CORECLR_SET_RPATH) -if(CLR_CMAKE_HOST_MACCATALYST OR CLR_CMAKE_HOST_IOS OR CLR_CMAKE_HOST_TVOS OR CLR_CMAKE_HOST_BROWSER) +if(CLR_CMAKE_HOST_MACCATALYST OR CLR_CMAKE_HOST_IOS OR CLR_CMAKE_HOST_TVOS OR CLR_CMAKE_HOST_BROWSER OR CLR_CMAKE_HOST_ANDROID) set(FEATURE_STANDALONE_GC 0) endif() From 92e79e33b1f23e825fbff9bc0e7eb3350288e46a Mon Sep 17 00:00:00 2001 From: Ivan Povazan Date: Wed, 9 Apr 2025 17:23:38 +0200 Subject: [PATCH 2/4] Do not build server GC into the coreCLR runtime lib on Android --- src/coreclr/clrdefinitions.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/coreclr/clrdefinitions.cmake b/src/coreclr/clrdefinitions.cmake index 550ce70a14ef7a..7dca8a754d425c 100644 --- a/src/coreclr/clrdefinitions.cmake +++ b/src/coreclr/clrdefinitions.cmake @@ -176,7 +176,9 @@ endif (CLR_CMAKE_HOST_UNIX AND CLR_CMAKE_TARGET_UNIX) if (FEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION) add_definitions(-DFEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION) endif(FEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION) -add_definitions(-DFEATURE_SVR_GC) +if (NOT CLR_CMAKE_HOST_ANDROID) + add_definitions(-DFEATURE_SVR_GC) +endif(NOT CLR_CMAKE_HOST_ANDROID) add_definitions(-DFEATURE_SYMDIFF) add_compile_definitions(FEATURE_TIERED_COMPILATION) if (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_ARM64 OR CLR_CMAKE_TARGET_ARCH_LOONGARCH64 OR CLR_CMAKE_TARGET_ARCH_RISCV64) From a33b2c48f84e04e4b5d56964305b1a58edcb89f1 Mon Sep 17 00:00:00 2001 From: Ivan Povazan Date: Thu, 10 Apr 2025 14:05:18 +0200 Subject: [PATCH 3/4] Properly guard server GC specific defines --- src/coreclr/vm/amd64/jitinterfaceamd64.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/coreclr/vm/amd64/jitinterfaceamd64.cpp b/src/coreclr/vm/amd64/jitinterfaceamd64.cpp index f9cd2a968a02a7..7b2c853d585542 100644 --- a/src/coreclr/vm/amd64/jitinterfaceamd64.cpp +++ b/src/coreclr/vm/amd64/jitinterfaceamd64.cpp @@ -709,7 +709,11 @@ bool WriteBarrierManager::NeedDifferentWriteBarrier(bool bReqUpperBoundsCheck, b } else { +#ifdef FEATURE_SVR_GC writeBarrierType = GCHeapUtilities::IsServerHeap() ? WRITE_BARRIER_SVR64 : WRITE_BARRIER_PREGROW64; +#else + writeBarrierType = WRITE_BARRIER_PREGROW64; +#endif // FEATURE_SVR_GC } continue; From c10070ea572cbcab550b5d36ca0a9f51b246415d Mon Sep 17 00:00:00 2001 From: Ivan Povazan Date: Thu, 10 Apr 2025 14:45:15 +0200 Subject: [PATCH 4/4] Remove unnecesarry exclusion --- src/tasks/AndroidAppBuilder/ApkBuilder.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/tasks/AndroidAppBuilder/ApkBuilder.cs b/src/tasks/AndroidAppBuilder/ApkBuilder.cs index de72f50ce8e39e..e9bc0506907ed6 100644 --- a/src/tasks/AndroidAppBuilder/ApkBuilder.cs +++ b/src/tasks/AndroidAppBuilder/ApkBuilder.cs @@ -451,9 +451,6 @@ public ApkBuilder(TaskLoggingHelper logger) var excludedLibs = new HashSet { "libmonodroid.so" }; if (IsCoreCLR) { - // exclude standalone GC libs - excludedLibs.Add("libclrgc.so"); - excludedLibs.Add("libclrgcexp.so"); if (StripDebugSymbols) { // exclude debugger support libs