From fc0a80c8958f715311f749f33e5275ebe1e4ec24 Mon Sep 17 00:00:00 2001 From: QuangSon Date: Tue, 8 Jul 2025 05:42:06 +0700 Subject: [PATCH 1/2] Support android 16kb page size --- build_tool/lib/src/android_environment.dart | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/build_tool/lib/src/android_environment.dart b/build_tool/lib/src/android_environment.dart index 9342964..eda4675 100644 --- a/build_tool/lib/src/android_environment.dart +++ b/build_tool/lib/src/android_environment.dart @@ -186,7 +186,18 @@ class AndroidEnvironment { if (rustFlags.isNotEmpty) { rustFlags = '$rustFlags\x1f'; } - rustFlags = '$rustFlags-L\x1f$workaroundDir'; + rustFlags = '$rustFlags-L\x1f$workaroundDir\x1f'; + + const pageSizeArgs = [ + "-C", + "link-arg=-Wl,--hash-style=both", + "-C", + "link-arg=-Wl,-z,max-page-size=16384" + ]; + final pageSizeArgsString = pageSizeArgs.join("\x1f"); + + rustFlags = '$rustFlags$pageSizeArgsString'; + return rustFlags; } } From d2fd3565ab38ffda0f022bf260120651646ae54a Mon Sep 17 00:00:00 2001 From: QuangSon Date: Tue, 12 Aug 2025 06:21:22 +0700 Subject: [PATCH 2/2] Only add page size arg for arch arm64-v8a & x86_64 android --- build_tool/lib/src/android_environment.dart | 25 ++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/build_tool/lib/src/android_environment.dart b/build_tool/lib/src/android_environment.dart index eda4675..04e120e 100644 --- a/build_tool/lib/src/android_environment.dart +++ b/build_tool/lib/src/android_environment.dart @@ -186,17 +186,22 @@ class AndroidEnvironment { if (rustFlags.isNotEmpty) { rustFlags = '$rustFlags\x1f'; } - rustFlags = '$rustFlags-L\x1f$workaroundDir\x1f'; - const pageSizeArgs = [ - "-C", - "link-arg=-Wl,--hash-style=both", - "-C", - "link-arg=-Wl,-z,max-page-size=16384" - ]; - final pageSizeArgsString = pageSizeArgs.join("\x1f"); - - rustFlags = '$rustFlags$pageSizeArgsString'; + if (["arm64-v8a", "x86_64"].contains(target.android)) { + rustFlags = '$rustFlags-L\x1f$workaroundDir\x1f'; + + const pageSizeArgs = [ + "-C", + "link-arg=-Wl,--hash-style=both", + "-C", + "link-arg=-Wl,-z,max-page-size=16384" + ]; + final pageSizeArgsString = pageSizeArgs.join("\x1f"); + + rustFlags = '$rustFlags$pageSizeArgsString'; + } else { + rustFlags = '$rustFlags-L\x1f$workaroundDir'; + } return rustFlags; }