diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.CoreCLR.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.CoreCLR.apkdesc index 15e3aae8ee9..d1ffef51cab 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.CoreCLR.apkdesc +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.CoreCLR.apkdesc @@ -5,19 +5,19 @@ "Size": 3036 }, "classes.dex": { - "Size": 400044 + "Size": 405624 }, "lib/arm64-v8a/libassembly-store.so": { - "Size": 3098192 + "Size": 3123272 }, "lib/arm64-v8a/libclrjit.so": { - "Size": 3223752 + "Size": 3222704 }, "lib/arm64-v8a/libcoreclr.so": { - "Size": 5771784 + "Size": 5757272 }, "lib/arm64-v8a/libmonodroid.so": { - "Size": 1366648 + "Size": 1257880 }, "lib/arm64-v8a/libSystem.Globalization.Native.so": { "Size": 72344 @@ -26,22 +26,13 @@ "Size": 1280336 }, "lib/arm64-v8a/libSystem.Native.so": { - "Size": 100552 + "Size": 101872 }, "lib/arm64-v8a/libSystem.Security.Cryptography.Native.Android.so": { "Size": 162000 }, "lib/arm64-v8a/libxamarin-app.so": { - "Size": 20424 - }, - "META-INF/BNDLTOOL.RSA": { - "Size": 1223 - }, - "META-INF/BNDLTOOL.SF": { - "Size": 2091 - }, - "META-INF/MANIFEST.MF": { - "Size": 1964 + "Size": 20776 }, "res/drawable-hdpi-v4/icon.png": { "Size": 2178 @@ -68,5 +59,5 @@ "Size": 1904 } }, - "PackageSize": 7632514 + "PackageSize": 7611835 } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.MonoVM.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.MonoVM.apkdesc index 42c7d46617e..aebaa3976c8 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.MonoVM.apkdesc +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.MonoVM.apkdesc @@ -11,31 +11,31 @@ "Size": 18232 }, "lib/arm64-v8a/lib_Java.Interop.dll.so": { - "Size": 87720 + "Size": 87984 }, "lib/arm64-v8a/lib_Mono.Android.dll.so": { - "Size": 118392 + "Size": 118272 }, "lib/arm64-v8a/lib_Mono.Android.Runtime.dll.so": { - "Size": 26848 + "Size": 26816 }, "lib/arm64-v8a/lib_System.Console.dll.so": { "Size": 24360 }, "lib/arm64-v8a/lib_System.Linq.dll.so": { - "Size": 25432 + "Size": 25448 }, "lib/arm64-v8a/lib_System.Private.CoreLib.dll.so": { - "Size": 638568 + "Size": 638000 }, "lib/arm64-v8a/lib_System.Runtime.dll.so": { "Size": 20224 }, "lib/arm64-v8a/lib_System.Runtime.InteropServices.dll.so": { - "Size": 19752 + "Size": 19760 }, "lib/arm64-v8a/lib_UnnamedProject.dll.so": { - "Size": 19968 + "Size": 19960 }, "lib/arm64-v8a/libarc.bin.so": { "Size": 19296 @@ -44,10 +44,10 @@ "Size": 36416 }, "lib/arm64-v8a/libmonodroid.so": { - "Size": 1385800 + "Size": 1274176 }, "lib/arm64-v8a/libmonosgen-2.0.so": { - "Size": 3111840 + "Size": 3111632 }, "lib/arm64-v8a/libSystem.Globalization.Native.so": { "Size": 72344 @@ -62,7 +62,7 @@ "Size": 162000 }, "lib/arm64-v8a/libxamarin-app.so": { - "Size": 19832 + "Size": 19648 }, "res/drawable-hdpi-v4/icon.png": { "Size": 2178 @@ -89,5 +89,5 @@ "Size": 1904 } }, - "PackageSize": 3254606 + "PackageSize": 3213646 } \ No newline at end of file diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.CoreCLR.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.CoreCLR.apkdesc index 3e9a925186f..75bea26b560 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.CoreCLR.apkdesc +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.CoreCLR.apkdesc @@ -5,10 +5,10 @@ "Size": 6652 }, "classes.dex": { - "Size": 9444112 + "Size": 9411640 }, "classes2.dex": { - "Size": 156448 + "Size": 157320 }, "kotlin/annotation/annotation.kotlin_builtins": { "Size": 928 @@ -32,16 +32,16 @@ "Size": 2396 }, "lib/arm64-v8a/libassembly-store.so": { - "Size": 14076232 + "Size": 14097528 }, "lib/arm64-v8a/libclrjit.so": { - "Size": 3223752 + "Size": 3222704 }, "lib/arm64-v8a/libcoreclr.so": { - "Size": 5771784 + "Size": 5757272 }, "lib/arm64-v8a/libmonodroid.so": { - "Size": 1366648 + "Size": 1257880 }, "lib/arm64-v8a/libSystem.Globalization.Native.so": { "Size": 72344 @@ -50,13 +50,13 @@ "Size": 1280336 }, "lib/arm64-v8a/libSystem.Native.so": { - "Size": 100552 + "Size": 101872 }, "lib/arm64-v8a/libSystem.Security.Cryptography.Native.Android.so": { "Size": 162000 }, "lib/arm64-v8a/libxamarin-app.so": { - "Size": 147264 + "Size": 147584 }, "META-INF/androidx.activity_activity.version": { "Size": 6 @@ -208,12 +208,6 @@ "META-INF/androidx.viewpager2_viewpager2.version": { "Size": 6 }, - "META-INF/BNDLTOOL.RSA": { - "Size": 1221 - }, - "META-INF/BNDLTOOL.SF": { - "Size": 90142 - }, "META-INF/com.android.tools/proguard/coroutines.pro": { "Size": 1345 }, @@ -238,9 +232,6 @@ "META-INF/kotlinx_coroutines_core.version": { "Size": 5 }, - "META-INF/MANIFEST.MF": { - "Size": 90015 - }, "META-INF/maven/com.google.guava/listenablefuture/pom.properties": { "Size": 96 }, @@ -478,9 +469,6 @@ "res/color-night-v8/material_timepicker_modebutton_tint.xml": { "Size": 340 }, - "res/color-v21/abc_btn_colored_borderless_text_material.xml": { - "Size": 464 - }, "res/color-v23/abc_btn_colored_borderless_text_material.xml": { "Size": 500 }, @@ -514,9 +502,6 @@ "res/color/abc_background_cache_hint_selector_material_light.xml": { "Size": 468 }, - "res/color/abc_btn_colored_text_material.xml": { - "Size": 604 - }, "res/color/abc_hint_foreground_material_dark.xml": { "Size": 564 }, @@ -544,24 +529,6 @@ "res/color/abc_secondary_text_material_light.xml": { "Size": 464 }, - "res/color/abc_tint_btn_checkable.xml": { - "Size": 728 - }, - "res/color/abc_tint_default.xml": { - "Size": 1224 - }, - "res/color/abc_tint_edittext.xml": { - "Size": 772 - }, - "res/color/abc_tint_seek_thumb.xml": { - "Size": 604 - }, - "res/color/abc_tint_spinner.xml": { - "Size": 772 - }, - "res/color/abc_tint_switch_track.xml": { - "Size": 768 - }, "res/color/checkbox_themeable_attribute_color.xml": { "Size": 464 }, @@ -1699,9 +1666,6 @@ "res/drawable/mtrl_ic_error.xml": { "Size": 644 }, - "res/drawable/mtrl_popupmenu_background_dark.xml": { - "Size": 740 - }, "res/drawable/mtrl_popupmenu_background.xml": { "Size": 740 }, @@ -1798,15 +1762,6 @@ "res/layout-v21/notification_template_icon_group.xml": { "Size": 988 }, - "res/layout-v22/abc_alert_dialog_button_bar_material.xml": { - "Size": 1584 - }, - "res/layout-v22/material_timepicker_dialog.xml": { - "Size": 3184 - }, - "res/layout-v22/mtrl_alert_dialog_actions.xml": { - "Size": 1764 - }, "res/layout-v26/abc_screen_toolbar.xml": { "Size": 1560 }, @@ -1844,7 +1799,7 @@ "Size": 1684 }, "res/layout/abc_alert_dialog_button_bar_material.xml": { - "Size": 1536 + "Size": 1584 }, "res/layout/abc_alert_dialog_material.xml": { "Size": 2648 @@ -2009,7 +1964,7 @@ "Size": 1208 }, "res/layout/material_timepicker_dialog.xml": { - "Size": 3132 + "Size": 3184 }, "res/layout/material_timepicker_textinput_display.xml": { "Size": 684 @@ -2018,7 +1973,7 @@ "Size": 1136 }, "res/layout/mtrl_alert_dialog_actions.xml": { - "Size": 1620 + "Size": 1764 }, "res/layout/mtrl_alert_dialog_title.xml": { "Size": 956 @@ -2276,8 +2231,8 @@ "Size": 268 }, "resources.arsc": { - "Size": 812848 + "Size": 794696 } }, - "PackageSize": 21263139 -} + "PackageSize": 21143117 +} \ No newline at end of file diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.MonoVM.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.MonoVM.apkdesc index 043500537a1..dcfb32b8f5c 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.MonoVM.apkdesc +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.MonoVM.apkdesc @@ -35,91 +35,91 @@ "Size": 25360 }, "lib/arm64-v8a/lib_Java.Interop.dll.so": { - "Size": 96344 + "Size": 96576 }, "lib/arm64-v8a/lib_Mono.Android.dll.so": { - "Size": 542848 + "Size": 542312 }, "lib/arm64-v8a/lib_Mono.Android.Runtime.dll.so": { - "Size": 26848 + "Size": 26816 }, "lib/arm64-v8a/lib_mscorlib.dll.so": { "Size": 21408 }, "lib/arm64-v8a/lib_netstandard.dll.so": { - "Size": 23048 + "Size": 23056 }, "lib/arm64-v8a/lib_System.Collections.dll.so": { - "Size": 33944 + "Size": 33952 }, "lib/arm64-v8a/lib_System.Collections.NonGeneric.dll.so": { - "Size": 25608 + "Size": 25624 }, "lib/arm64-v8a/lib_System.Collections.Specialized.dll.so": { - "Size": 23800 + "Size": 23816 }, "lib/arm64-v8a/lib_System.ComponentModel.dll.so": { - "Size": 19560 + "Size": 19568 }, "lib/arm64-v8a/lib_System.ComponentModel.Primitives.dll.so": { "Size": 21296 }, "lib/arm64-v8a/lib_System.ComponentModel.TypeConverter.dll.so": { - "Size": 43600 + "Size": 43608 }, "lib/arm64-v8a/lib_System.Console.dll.so": { - "Size": 24392 + "Size": 24400 }, "lib/arm64-v8a/lib_System.Core.dll.so": { - "Size": 19424 + "Size": 19432 }, "lib/arm64-v8a/lib_System.Diagnostics.TraceSource.dll.so": { - "Size": 24584 + "Size": 24592 }, "lib/arm64-v8a/lib_System.dll.so": { - "Size": 19784 + "Size": 19792 }, "lib/arm64-v8a/lib_System.Drawing.dll.so": { "Size": 19400 }, "lib/arm64-v8a/lib_System.Drawing.Primitives.dll.so": { - "Size": 30016 + "Size": 30032 }, "lib/arm64-v8a/lib_System.Formats.Asn1.dll.so": { - "Size": 50968 + "Size": 50976 }, "lib/arm64-v8a/lib_System.IO.Compression.Brotli.dll.so": { - "Size": 29536 + "Size": 29552 }, "lib/arm64-v8a/lib_System.IO.Compression.dll.so": { - "Size": 34600 + "Size": 34616 }, "lib/arm64-v8a/lib_System.IO.IsolatedStorage.dll.so": { - "Size": 28232 + "Size": 28240 }, "lib/arm64-v8a/lib_System.Linq.dll.so": { - "Size": 47912 + "Size": 47920 }, "lib/arm64-v8a/lib_System.Linq.Expressions.dll.so": { - "Size": 185968 + "Size": 185976 }, "lib/arm64-v8a/lib_System.Net.Http.dll.so": { - "Size": 86680 + "Size": 86688 }, "lib/arm64-v8a/lib_System.Net.Primitives.dll.so": { - "Size": 42280 + "Size": 42288 }, "lib/arm64-v8a/lib_System.Net.Requests.dll.so": { - "Size": 21520 + "Size": 21528 }, "lib/arm64-v8a/lib_System.ObjectModel.dll.so": { - "Size": 26968 + "Size": 26984 }, "lib/arm64-v8a/lib_System.Private.CoreLib.dll.so": { - "Size": 999864 + "Size": 1000432 }, "lib/arm64-v8a/lib_System.Private.DataContractSerialization.dll.so": { - "Size": 217808 + "Size": 217816 }, "lib/arm64-v8a/lib_System.Private.Uri.dll.so": { "Size": 62216 @@ -128,25 +128,25 @@ "Size": 236968 }, "lib/arm64-v8a/lib_System.Private.Xml.Linq.dll.so": { - "Size": 35464 + "Size": 35480 }, "lib/arm64-v8a/lib_System.Runtime.dll.so": { - "Size": 20352 + "Size": 20360 }, "lib/arm64-v8a/lib_System.Runtime.InteropServices.dll.so": { - "Size": 19752 + "Size": 19760 }, "lib/arm64-v8a/lib_System.Runtime.Numerics.dll.so": { "Size": 63312 }, "lib/arm64-v8a/lib_System.Runtime.Serialization.dll.so": { - "Size": 19328 + "Size": 19336 }, "lib/arm64-v8a/lib_System.Runtime.Serialization.Formatters.dll.so": { - "Size": 20296 + "Size": 20304 }, "lib/arm64-v8a/lib_System.Runtime.Serialization.Primitives.dll.so": { - "Size": 21424 + "Size": 21432 }, "lib/arm64-v8a/lib_System.Security.Cryptography.dll.so": { "Size": 82024 @@ -155,10 +155,10 @@ "Size": 194176 }, "lib/arm64-v8a/lib_System.Xml.dll.so": { - "Size": 19216 + "Size": 19224 }, "lib/arm64-v8a/lib_System.Xml.Linq.dll.so": { - "Size": 19240 + "Size": 19248 }, "lib/arm64-v8a/lib_UnnamedProject.dll.so": { "Size": 22040 @@ -239,10 +239,10 @@ "Size": 36416 }, "lib/arm64-v8a/libmonodroid.so": { - "Size": 1385800 + "Size": 1274176 }, "lib/arm64-v8a/libmonosgen-2.0.so": { - "Size": 3111840 + "Size": 3111632 }, "lib/arm64-v8a/libSystem.Globalization.Native.so": { "Size": 72344 @@ -257,7 +257,7 @@ "Size": 162000 }, "lib/arm64-v8a/libxamarin-app.so": { - "Size": 350616 + "Size": 350432 }, "META-INF/androidx.activity_activity.version": { "Size": 6 @@ -2435,5 +2435,5 @@ "Size": 794696 } }, - "PackageSize": 11024231 + "PackageSize": 10983271 } \ No newline at end of file diff --git a/src/native/CMakeLists.txt b/src/native/CMakeLists.txt index ba9267c5623..e3cab3ddd0d 100644 --- a/src/native/CMakeLists.txt +++ b/src/native/CMakeLists.txt @@ -463,8 +463,8 @@ set(POTENTIAL_COMMON_COMPILER_ARGS -fstack-protector-strong -fstrict-return -fno-strict-aliasing - -fno-function-sections - -fno-data-sections + -ffunction-sections + -fdata-sections -fno-dwarf-exceptions -fno-asynchronous-unwind-tables -funswitch-loops @@ -495,6 +495,12 @@ set(POTENTIAL_COMMON_LINKER_ARGS LINKER:--no-eh-frame-hdr ) +if(NOT DEBUG_BUILD AND NOT ENABLE_CLANG_ASAN AND NOT ENABLE_CLANG_UBSAN) + list(APPEND POTENTIAL_COMMON_LINKER_ARGS + LINKER:--gc-sections + ) +endif() + # Add some options to increase security. They may mildly affect performance but they won't be big, because the features are # assisted by the hardware. if((CMAKE_ANDROID_ARCH_ABI STREQUAL "x86") OR (CMAKE_ANDROID_ARCH_ABI STREQUAL "x86_64"))