[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
 }