[vm, test] Fix using the NDK's assembler.
TEST=test.py without --use-elf
Change-Id: Ie7ff32eebea175cb389c23892146bc6a380be6ba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/321321
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
diff --git a/pkg/test_runner/lib/src/compiler_configuration.dart b/pkg/test_runner/lib/src/compiler_configuration.dart
index 14e0c8fd..cf803c0 100644
--- a/pkg/test_runner/lib/src/compiler_configuration.dart
+++ b/pkg/test_runner/lib/src/compiler_configuration.dart
@@ -1021,8 +1021,18 @@
var ldFlags = <String>[];
List<String>? target;
if (_isAndroid) {
- cc = "$ndkPath/toolchains/$abiTriple-4.9/prebuilt/"
- "$host-x86_64/bin/$abiTriple-gcc";
+ if (_isArm || _isArmX64) {
+ cc =
+ '$ndkPath/toolchains/llvm/prebuilt/$host-x86_64/bin/armv7a-linux-androideabi21-clang';
+ } else if (_isArm64) {
+ cc =
+ '$ndkPath/toolchains/llvm/prebuilt/$host-x86_64/bin/aarch64-linux-android21-clang';
+ } else if (_isX64) {
+ cc =
+ '$ndkPath/toolchains/llvm/prebuilt/$host-x86_64/bin/x86_64-linux-android21-clang';
+ } else {
+ throw 'Unimplemented';
+ }
shared = '-shared';
ldFlags.add('-Wl,--no-undefined');
ldFlags.add('-Wl,-z,max-page-size=65536');
diff --git a/runtime/vm/image_snapshot.cc b/runtime/vm/image_snapshot.cc
index 9093c74..7f8a816 100644
--- a/runtime/vm/image_snapshot.cc
+++ b/runtime/vm/image_snapshot.cc
@@ -1172,7 +1172,11 @@
#if defined(DART_TARGET_OS_LINUX) || defined(DART_TARGET_OS_ANDROID) || \
defined(DART_TARGET_OS_FUCHSIA)
// Non-executable stack.
- assembly_stream_->WriteString(".section .note.GNU-stack,\"\"\n");
+#if defined(TARGET_ARCH_ARM)
+ assembly_stream_->WriteString(".section .note.GNU-stack,\"\",%progbits\n");
+#else
+ assembly_stream_->WriteString(".section .note.GNU-stack,\"\",@progbits\n");
+#endif
#endif
}