diff --git a/build_tool/lib/src/android_environment.dart b/build_tool/lib/src/android_environment.dart index 9342964..04e120e 100644 --- a/build_tool/lib/src/android_environment.dart +++ b/build_tool/lib/src/android_environment.dart @@ -186,7 +186,23 @@ class AndroidEnvironment { if (rustFlags.isNotEmpty) { rustFlags = '$rustFlags\x1f'; } - rustFlags = '$rustFlags-L\x1f$workaroundDir'; + + 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; } }