From 45e20479eedff3aa3f19fed9b807cf3a189e8a95 Mon Sep 17 00:00:00 2001 From: Thays Grazia Date: Thu, 21 May 2020 06:29:14 -0300 Subject: [PATCH] Fixing tests on android. (#36788) The linker was removing the icu shim functions even exporting them. The unique solution that we found until now is to force the linking using the -u flag. This is a temporary fix until we don't implement QCalls. Fixes https://github.com/dotnet/runtime/issues/36685 --- src/mono/mono/metadata/native-library.c | 2 +- .../Templates/CMakeLists-android.txt | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/mono/mono/metadata/native-library.c b/src/mono/mono/metadata/native-library.c index 2b04f0d6d83c17..be893b11a766ec 100644 --- a/src/mono/mono/metadata/native-library.c +++ b/src/mono/mono/metadata/native-library.c @@ -1272,7 +1272,7 @@ lookup_pinvoke_call_impl (MonoMethod *method, MonoLookupPInvokeStatus *status_ou new_scope = g_strdup ("libcoreclr.dylib"); #else #if defined(TARGET_ANDROID) - new_scope = g_strdup ("libmonosgen-2.0.so"); + new_scope = g_strdup ("libruntime-android.so"); #else new_scope = g_strdup ("libcoreclr.so"); #endif diff --git a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/CMakeLists-android.txt b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/CMakeLists-android.txt index 619d576de7e19d..18727daa906057 100644 --- a/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/CMakeLists-android.txt +++ b/tools-local/tasks/mobile.tasks/AndroidAppBuilder/Templates/CMakeLists-android.txt @@ -13,4 +13,14 @@ target_link_libraries( runtime-android %NativeLibrariesToLink% libz.so - log) + log + "-u GlobalizationNative_LoadICU" + "-u GlobalizationNative_GetLatestJapaneseEra" + "-u GlobalizationNative_ChangeCase" + "-u GlobalizationNative_CloseSortHandle" + "-u GlobalizationNative_GetLocales" + "-u GlobalizationNative_GetLocaleInfoInt" + "-u GlobalizationNative_GetLocaleTimeFormat" + "-u GlobalizationNative_ToUnicode" + "-u GlobalizationNative_NormalizeString" + "-u GlobalizationNative_GetTimeZoneDisplayName")