[build, test_runner] Update to NDK 27.

Notably, this carries us across the gcc->llvm transition.

Change-Id: I46203749c64c7ef0f52de40abcd4a073517cb06f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/330949
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
This commit is contained in:
Ryan Macnak 2023-10-18 22:38:23 +00:00
parent 5a0ff4ceb1
commit 99bb8aa4a5
11 changed files with 70 additions and 234 deletions

9
DEPS
View file

@ -605,7 +605,7 @@ Var("dart_root") + "/third_party/pkg/tar":
"dep_type": "cipd", "dep_type": "cipd",
}, },
Var("dart_root") + "/third_party/canary_ndk": { Var("dart_root") + "/third_party/android_tools/ndk": {
"packages": [ "packages": [
{ {
"package": "flutter/android/ndk/${{os}}-amd64", "package": "flutter/android/ndk/${{os}}-amd64",
@ -615,12 +615,11 @@ Var("dart_root") + "/third_party/pkg/tar":
"condition": "download_android_deps", "condition": "download_android_deps",
"dep_type": "cipd", "dep_type": "cipd",
}, },
Var("dart_root") + "/third_party/android_tools/sdk/platform-tools": {
Var("dart_root") + "/third_party/android_tools": {
"packages": [ "packages": [
{ {
"package": "flutter/android/sdk/all/${{os}}-amd64", "package": "flutter/android/sdk/platform-tools/linux-amd64",
"version": "version:33v6" "version": "1tZc4sOxZS6FQIvT5i0wwdycmM8AO7QZY32FC9_HfR4C"
} }
], ],
"condition": "download_android_deps", "condition": "download_android_deps",

View file

@ -222,7 +222,7 @@ if (!is_clang && (is_asan || is_lsan || is_msan || is_tsan || is_ubsan)) {
is_clang = true is_clang = true
} }
use_flutter_cxx = is_msan || is_tsan || is_android use_flutter_cxx = is_msan || is_tsan
# ============================================================================= # =============================================================================
# TARGET DEFAULTS # TARGET DEFAULTS

View file

@ -8,16 +8,15 @@ import("//build/config/sysroot.gni")
config("sdk") { config("sdk") {
if (sysroot != "") { if (sysroot != "") {
cflags = [ "--sysroot=" + sysroot ] cflags = [ "--sysroot=" + sysroot ]
ldflags = [ "-L" + rebase_path("$android_lib") ]
# Need to get some linker flags out of the sysroot. # Need to get some linker flags out of the sysroot.
sysroot_ld_path = rebase_path("//build/config/linux/sysroot_ld_path.py") sysroot_ld_path = rebase_path("//build/config/linux/sysroot_ld_path.py")
ldflags += [ exec_script(sysroot_ld_path, ldflags = [ exec_script(sysroot_ld_path,
[ [
rebase_path("//build/linux/sysroot_ld_path.sh"), rebase_path("//build/linux/sysroot_ld_path.sh"),
sysroot, sysroot,
], ],
"value") ] "value") ]
} }
} }

View file

@ -55,9 +55,6 @@ if (is_android) {
# Path to the Android NDK and SDK. # Path to the Android NDK and SDK.
android_ndk_root = "//third_party/android_tools/ndk" android_ndk_root = "//third_party/android_tools/ndk"
if (current_cpu == "riscv64") {
android_ndk_root = "//third_party/canary_ndk"
}
android_ndk_include_dir = "$android_ndk_root/usr/include" android_ndk_include_dir = "$android_ndk_root/usr/include"
android_sdk = "${android_sdk_root}/platforms/android-${android_sdk_version}" android_sdk = "${android_sdk_root}/platforms/android-${android_sdk_version}"
@ -75,77 +72,17 @@ if (is_android) {
# associated platform. # associated platform.
if (current_cpu == "riscv64") { if (current_cpu == "riscv64") {
android_api_level = 35 android_api_level = 35
} else if (current_cpu == "x64" || current_cpu == "arm64") {
android_api_level = 22
} else { } else {
android_api_level = 19 android_api_level = 21
} }
# Toolchain root directory for each build. The actual binaries are inside # Toolchain root directory for each build. The actual binaries are inside
# a "bin" directory inside of these. # a "bin" directory inside of these.
_android_toolchain_version = "4.9"
llvm_android_toolchain_root = "$android_ndk_root/toolchains/llvm/prebuilt/${android_host_os}-${android_host_arch}" llvm_android_toolchain_root = "$android_ndk_root/toolchains/llvm/prebuilt/${android_host_os}-${android_host_arch}"
android_toolchain_root = "$android_ndk_root/toolchains/llvm/prebuilt/${android_host_os}-${android_host_arch}"
x86_android_toolchain_root = "$android_ndk_root/toolchains/x86-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
arm_android_toolchain_root = "$android_ndk_root/toolchains/arm-linux-androideabi-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
x86_64_android_toolchain_root = "$android_ndk_root/toolchains/x86_64-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
arm64_android_toolchain_root = "$android_ndk_root/toolchains/aarch64-linux-android-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
riscv64_android_toolchain_root = "$android_ndk_root/toolchains/llvm/prebuilt/${android_host_os}-${android_host_arch}"
x86_android_lib = "$llvm_android_toolchain_root/sysroot/usr/lib/i686-linux-android/${android_api_level}"
arm_android_lib = "$llvm_android_toolchain_root/sysroot/usr/lib/arm-linux-androideabi/${android_api_level}"
x86_64_android_lib = "$llvm_android_toolchain_root/sysroot/usr/lib/x86_64-linux-android/${android_api_level}"
arm64_android_lib = "$llvm_android_toolchain_root/sysroot/usr/lib/aarch64-linux-android/${android_api_level}"
riscv64_android_lib = "$llvm_android_toolchain_root/sysroot/usr/lib/riscv64-linux-android/${android_api_level}"
# Location of libgcc. This is only needed for the current GN toolchain, so we
# only need to define the current one, rather than one for every platform
# like the toolchain roots.
if (current_cpu == "x86") {
android_prebuilt_arch = "android-x86"
android_target_triple = "i686-linux-android"
android_toolchain_root = "$x86_android_toolchain_root"
android_lib = "$x86_android_lib"
} else if (current_cpu == "arm") {
android_prebuilt_arch = "android-arm"
android_target_triple = "arm-linux-androideabi"
android_toolchain_root = "$arm_android_toolchain_root"
android_lib = "$arm_android_lib"
} else if (current_cpu == "x64") {
android_prebuilt_arch = "android-x86_64"
android_target_triple = "x86_64-linux-android"
android_toolchain_root = "$x86_64_android_toolchain_root"
android_lib = "$x86_64_android_lib"
} else if (current_cpu == "arm64") {
android_prebuilt_arch = "android-arm64"
android_target_triple = "aarch64-linux-android"
android_toolchain_root = "$arm64_android_toolchain_root"
android_lib = "$arm64_android_lib"
} else if (current_cpu == "riscv64") {
android_prebuilt_arch = "android-riscv64"
android_target_triple = "riscv64-linux-android"
android_toolchain_root = "$riscv64_android_toolchain_root"
android_lib = "$riscv64_android_lib"
} else {
assert(false, "Need android libgcc support for your target arch.")
}
android_tool_prefix = "$android_toolchain_root/bin/$android_target_triple-"
android_readelf = "${android_tool_prefix}readelf"
android_objcopy = "${android_tool_prefix}objcopy"
android_gdbserver =
"$android_ndk_root/prebuilt/$android_prebuilt_arch/gdbserver/gdbserver"
# Toolchain stuff ------------------------------------------------------------ # Toolchain stuff ------------------------------------------------------------
android_libcpp_root = "$android_ndk_root/sources/cxx-stl/llvm-libc++"
if (component_mode == "shared_library") {
android_libcpp_library = "c++_shared"
} else {
android_libcpp_library = "c++_static"
}
if (component_mode == "shared_library") { if (component_mode == "shared_library") {
# By appending .cr, we prevent name collisions with libraries already # By appending .cr, we prevent name collisions with libraries already
# loaded by the Android zygote. # loaded by the Android zygote.
@ -159,12 +96,7 @@ if (is_android) {
if (current_cpu == "x86") { if (current_cpu == "x86") {
android_app_abi = "x86" android_app_abi = "x86"
} else if (current_cpu == "arm") { } else if (current_cpu == "arm") {
import("//build/config/arm.gni") android_app_abi = "armeabi-v7a"
if (arm_version < 7) {
android_app_abi = "armeabi"
} else {
android_app_abi = "armeabi-v7a"
}
} else if (current_cpu == "x64") { } else if (current_cpu == "x64") {
android_app_abi = "x86_64" android_app_abi = "x86_64"
} else if (current_cpu == "arm64") { } else if (current_cpu == "arm64") {

View file

@ -360,14 +360,6 @@ config("compiler") {
"-funwind-tables", "-funwind-tables",
"-fno-short-enums", "-fno-short-enums",
] ]
if (!is_clang) {
# Clang doesn't support these flags.
cflags += [ "-finline-limit=64" ]
}
if (current_cpu == "arm64") {
# TODO (https://github.com/flutter/flutter/issues/75348).
cflags += [ "-mno-outline-atomics" ]
}
if (is_asan) { if (is_asan) {
# Android build relies on -Wl,--gc-sections removing unreachable code. # Android build relies on -Wl,--gc-sections removing unreachable code.
# ASan instrumentation for globals inhibits this and results in a library # ASan instrumentation for globals inhibits this and results in a library
@ -382,21 +374,11 @@ config("compiler") {
# to say that it does. Define them here instead. # to say that it does. Define them here instead.
defines += [ "HAVE_SYS_UIO_H" ] defines += [ "HAVE_SYS_UIO_H" ]
# Use gold for Android for most CPU architectures.
if (is_clang) {
# Let clang find the ld.gold in the NDK.
toolchain_root = rebase_path(android_toolchain_root, root_build_dir)
ldflags += [ "--gcc-toolchain=$toolchain_root" ]
}
ldflags += [ ldflags += [
# Don't allow visible symbols from libgcc or libc++ to be # Don't allow visible symbols from libgcc or libc++ to be
# re-exported. # re-exported.
"-Wl,--exclude-libs=libgcc.a",
"-Wl,--exclude-libs=libc++_static.a", "-Wl,--exclude-libs=libc++_static.a",
"-fuse-ld=lld",
# Currently defaults to 4k, but Android will be moving to 16k page size, # Currently defaults to 4k, but Android will be moving to 16k page size,
# and for future-proofing, 64k boundaries will be required. # and for future-proofing, 64k boundaries will be required.
"-Wl,-z,max-page-size=65536", "-Wl,-z,max-page-size=65536",
@ -404,20 +386,20 @@ config("compiler") {
if (is_clang) { if (is_clang) {
if (current_cpu == "arm") { if (current_cpu == "arm") {
cflags += [ "--target=arm-linux-androideabi" ] cflags += [ "--target=arm-linux-androideabi${android_api_level}" ]
ldflags += [ "--target=arm-linux-androideabi" ] ldflags += [ "--target=arm-linux-androideabi${android_api_level}" ]
} else if (current_cpu == "arm64") { } else if (current_cpu == "arm64") {
cflags += [ "--target=aarch64-linux-android" ] cflags += [ "--target=aarch64-linux-android${android_api_level}" ]
ldflags += [ "--target=aarch64-linux-android" ] ldflags += [ "--target=aarch64-linux-android${android_api_level}" ]
} else if (current_cpu == "x86") { } else if (current_cpu == "x86") {
cflags += [ "--target=i686-linux-androideabi" ] cflags += [ "--target=i686-linux-androideabi${android_api_level}" ]
ldflags += [ "--target=i686-linux-androideabi" ] ldflags += [ "--target=i686-linux-androideabi${android_api_level}" ]
} else if (current_cpu == "x64") { } else if (current_cpu == "x64") {
cflags += [ "--target=x86_64-linux-androideabi" ] cflags += [ "--target=x86_64-linux-androideabi${android_api_level}" ]
ldflags += [ "--target=x86_64-linux-androideabi" ] ldflags += [ "--target=x86_64-linux-androideabi${android_api_level}" ]
} else if (current_cpu == "riscv64") { } else if (current_cpu == "riscv64") {
cflags += [ "--target=riscv64-linux-android" ] cflags += [ "--target=riscv64-linux-android${android_api_level}" ]
ldflags += [ "--target=riscv64-linux-android" ] ldflags += [ "--target=riscv64-linux-android${android_api_level}" ]
} }
} }
} }
@ -587,46 +569,17 @@ config("runtime_library") {
] ]
} else if (is_android) { } else if (is_android) {
# Android standard library setup. # Android standard library setup.
if (is_clang) {
# Work around incompatibilities between bionic and clang headers.
defines += [ "__compiler_offsetof=__builtin_offsetof" ]
}
defines += [ "__GNU_SOURCE=1" ] # Necessary for clone().
ldflags += [ ldflags += [
"-Wl,--warn-shared-textrel", "-Wl,--warn-shared-textrel",
"-nostdlib", "-static-libstdc++",
] ]
cflags += [ "-D__ANDROID_API__=$android_api_level" ]
lib_dirs += [ "$android_libcpp_root/libs/$android_app_abi" ]
if (android_api_level < 21) {
libs += [ "android_support" ]
}
if (current_cpu == "arm") {
libs += [ "unwind" ]
}
libs += [ libs += [
"gcc",
"c", "c",
"dl", "dl",
"m", "m",
] ]
if (current_cpu == "riscv64") {
libs -= [ "gcc" ]
lib_dirs += [ "//third_party/canary_ndk/toolchains/llvm/prebuilt/${android_host_os}-${android_host_arch}/lib/clang/17/lib/linux/" ]
libs += [ "clang_rt.builtins-riscv64-android" ]
}
# Clang with libc++ does not require an explicit atomic library reference.
if (!is_clang) {
libs += [ "atomic" ]
}
} }
} }

View file

@ -64,7 +64,7 @@ if ((current_toolchain == host_toolchain ||
sysroot = target_sysroot sysroot = target_sysroot
} else if (is_android) { } else if (is_android) {
import("//build/config/android/config.gni") import("//build/config/android/config.gni")
sysroot = rebase_path("$llvm_android_toolchain_root/sysroot") sysroot = rebase_path("$android_toolchain_root/sysroot")
} else if (is_mac) { } else if (is_mac) {
import("//build/config/mac/mac_sdk.gni") import("//build/config/mac/mac_sdk.gni")
sysroot = mac_sdk_path sysroot = mac_sdk_path

View file

@ -17,20 +17,8 @@ import("//build/toolchain/goma.gni")
# Prefix to be added to the tool names. # Prefix to be added to the tool names.
# - toolchain_cpu # - toolchain_cpu
# Same as gcc_toolchain # Same as gcc_toolchain
template("android_gcc_toolchain") { template("android_toolchain") {
gcc_toolchain(target_name) { gcc_toolchain(target_name) {
# Make our manually injected libs relative to the build dir.
android_ndk_lib = rebase_path(invoker.android_ndk_lib_dir, root_build_dir)
libs_section_prefix = "$android_ndk_lib/crtbegin_dynamic.o"
libs_section_postfix = "$android_ndk_lib/crtend_android.o"
solink_libs_section_prefix = "$android_ndk_lib/crtbegin_so.o"
solink_libs_section_postfix = "$android_ndk_lib/crtend_so.o"
# The tools should be run relative to the build dir.
tool_prefix = rebase_path(invoker.tool_prefix, root_build_dir)
if (use_goma) { if (use_goma) {
assert(!use_ccache, "Goma and ccache can't be used together.") assert(!use_ccache, "Goma and ccache can't be used together.")
compiler_prefix = "$goma_dir/gomacc " compiler_prefix = "$goma_dir/gomacc "
@ -40,33 +28,18 @@ template("android_gcc_toolchain") {
compiler_prefix = "" compiler_prefix = ""
} }
is_clang = invoker.is_clang is_clang = true
if (is_clang) { prefix = rebase_path(
not_needed([ "tool_prefix" ]) "${android_ndk_root}/toolchains/llvm/prebuilt/${android_host_os}-${android_host_arch}/bin",
prefix = root_build_dir)
rebase_path("//buildtools/${host_os}-x64/clang/bin", root_build_dir)
if (current_cpu == "riscv64") {
prefix = rebase_path(
"//third_party/canary_ndk/toolchains/llvm/prebuilt/${android_host_os}-${android_host_arch}/bin",
root_build_dir)
}
cc = compiler_prefix + prefix + "/clang" cc = compiler_prefix + prefix + "/clang"
cxx = compiler_prefix + prefix + "/clang++" cxx = compiler_prefix + prefix + "/clang++"
ar = prefix + "/llvm-ar" ar = prefix + "/llvm-ar"
ld = cxx ld = cxx
readelf = prefix + "/llvm-readelf" readelf = prefix + "/llvm-readelf"
nm = prefix + "/llvm-nm" nm = prefix + "/llvm-nm"
android_strip = prefix + "/llvm-strip" android_strip = prefix + "/llvm-strip"
} else {
cc = compiler_prefix + tool_prefix + "gcc"
cxx = compiler_prefix + tool_prefix + "g++"
ar = tool_prefix + "ar"
ld = cxx
readelf = tool_prefix + "readelf"
nm = tool_prefix + "nm"
android_strip = tool_prefix + "strip"
}
toolchain_os = "android" toolchain_os = "android"
toolchain_cpu = invoker.toolchain_cpu toolchain_cpu = invoker.toolchain_cpu
@ -94,51 +67,22 @@ template("android_gcc_toolchain") {
} }
} }
template("android_gcc_toolchains_helper") { android_toolchain("clang_x86") {
android_gcc_toolchain(target_name) {
android_ndk_lib_dir = invoker.android_ndk_lib_dir
tool_prefix = invoker.tool_prefix
toolchain_cpu = invoker.toolchain_cpu
}
android_gcc_toolchain("clang_$target_name") {
android_ndk_lib_dir = invoker.android_ndk_lib_dir
tool_prefix = invoker.tool_prefix
toolchain_cpu = invoker.toolchain_cpu
is_clang = true
}
}
android_gcc_toolchains_helper("x86") {
android_ndk_lib_dir = x86_android_lib
tool_prefix = "$llvm_android_toolchain_root/bin/i686-linux-android-"
toolchain_cpu = "x86" toolchain_cpu = "x86"
} }
android_gcc_toolchains_helper("arm") { android_toolchain("clang_arm") {
android_ndk_lib_dir = arm_android_lib
tool_prefix = "$llvm_android_toolchain_root/bin/arm-linux-androideabi-"
toolchain_cpu = "arm" toolchain_cpu = "arm"
} }
android_gcc_toolchains_helper("x64") { android_toolchain("clang_x64") {
android_ndk_lib_dir = x86_64_android_lib
tool_prefix = "$llvm_android_toolchain_root/bin/x86_64-linux-android-"
toolchain_cpu = "x86_64" toolchain_cpu = "x86_64"
} }
android_gcc_toolchains_helper("arm64") { android_toolchain("clang_arm64") {
android_ndk_lib_dir = arm64_android_lib
tool_prefix = "$llvm_android_toolchain_root/bin/aarch64-linux-android-"
toolchain_cpu = "aarch64" toolchain_cpu = "aarch64"
} }
android_gcc_toolchains_helper("riscv64") { android_toolchain("clang_riscv64") {
android_ndk_lib_dir = riscv64_android_lib
tool_prefix = "$llvm_android_toolchain_root/bin/riscv64-linux-android-"
toolchain_cpu = "riscv64" toolchain_cpu = "riscv64"
} }

View file

@ -950,7 +950,7 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration
if (_isAndroid) { if (_isAndroid) {
if (_isArm || _isIA32) { if (_isArm || _isIA32) {
exec = "$buildDir/$clang32/gen_snapshot"; exec = "$buildDir/$clang32/gen_snapshot";
} else if (_isArm64 || _isX64 || _isArmX64) { } else if (_isArm64 || _isX64 || _isArmX64 || _isRiscv64) {
exec = "$buildDir/$clang64/gen_snapshot"; exec = "$buildDir/$clang64/gen_snapshot";
} else { } else {
// Guaranteed by package:test_runner/src/configuration.dart's // Guaranteed by package:test_runner/src/configuration.dart's
@ -1046,19 +1046,22 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration
var ldFlags = <String>[]; var ldFlags = <String>[];
List<String>? target; List<String>? target;
if (_isAndroid) { if (_isAndroid) {
if (_isArm || _isArmX64) { cc = '$ndkPath/toolchains/llvm/prebuilt/$host-x86_64/bin/clang';
cc = if (_isIA32) {
'$ndkPath/toolchains/llvm/prebuilt/$host-x86_64/bin/armv7a-linux-androideabi21-clang'; ldFlags.add('--target=i686-linux-androideabi');
} else if (_isArm64) {
cc =
'$ndkPath/toolchains/llvm/prebuilt/$host-x86_64/bin/aarch64-linux-android21-clang';
} else if (_isX64) { } else if (_isX64) {
cc = ldFlags.add('--target=x86_64-linux-androideabi');
'$ndkPath/toolchains/llvm/prebuilt/$host-x86_64/bin/x86_64-linux-android21-clang'; } else if (_isArm || _isArmX64) {
ldFlags.add('--target=arm-linux-androideabi');
} else if (_isArm64) {
ldFlags.add('--target=aarch64-linux-android');
} else if (_isRiscv64) {
ldFlags.add('--target=riscv64-linux-android');
} else { } else {
throw 'Unimplemented'; throw 'Unimplemented';
} }
shared = '-shared'; shared = '-shared';
ldFlags.add('-nostdlib');
ldFlags.add('-Wl,--no-undefined'); ldFlags.add('-Wl,--no-undefined');
ldFlags.add('-Wl,-z,max-page-size=65536'); ldFlags.add('-Wl,-z,max-page-size=65536');
} else if (Platform.isLinux) { } else if (Platform.isLinux) {
@ -1129,8 +1132,8 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration
Command computeStripCommand( Command computeStripCommand(
String tempDir, Map<String, String> environmentOverrides) { String tempDir, Map<String, String> environmentOverrides) {
var stripTool = "$ndkPath/toolchains/$abiTriple-4.9/prebuilt/" var stripTool = "$ndkPath/toolchains/llvm/prebuilt/"
"$host-x86_64/bin/$abiTriple-strip"; "$host-x86_64/bin/llvm-strip";
var args = ['--strip-unneeded', "$tempDir/out.aotsnapshot"]; var args = ['--strip-unneeded', "$tempDir/out.aotsnapshot"];
return CompilationCommand('strip', tempDir, bootstrapDependencies(), return CompilationCommand('strip', tempDir, bootstrapDependencies(),
stripTool, args, environmentOverrides, stripTool, args, environmentOverrides,

View file

@ -459,9 +459,10 @@ class TestConfiguration {
architecture == Architecture.arm || architecture == Architecture.arm ||
architecture == Architecture.arm_x64 || architecture == Architecture.arm_x64 ||
architecture == Architecture.arm64 || architecture == Architecture.arm64 ||
architecture == Architecture.arm64c)) { architecture == Architecture.arm64c ||
print("Warning: Android only supports the following " architecture == Architecture.riscv64)) {
"architectures: ia32/x64/arm/arm64/arm64c/arm_x64."); print("Warning: Android only supports the following architectures: "
"ia32/x64/x64c/arm/arm64/arm64c/arm_x64/riscv64.");
isValid = false; isValid = false;
} }

View file

@ -645,8 +645,12 @@ class CommandExecutorImpl implements CommandExecutor {
steps.add(() => device.runAdbShellCommand(['rm', '-Rf', deviceTestDir])); steps.add(() => device.runAdbShellCommand(['rm', '-Rf', deviceTestDir]));
steps.add(() => device.runAdbShellCommand(['mkdir', '-p', deviceTestDir])); steps.add(() => device.runAdbShellCommand(['mkdir', '-p', deviceTestDir]));
steps.add(() => device.pushCachedData('$buildPath/dart_precompiled_runtime', steps.add(() => device.pushCachedData(
'$buildPath/exe.stripped/dart_precompiled_runtime',
'$devicedir/dart_precompiled_runtime')); '$devicedir/dart_precompiled_runtime'));
steps.add(() => device.pushCachedData(
'$buildPath/dart_precompiled_runtime.sym',
'$devicedir/dart_precompiled_runtime.sym'));
steps.add( steps.add(
() => device.pushCachedData(processTest, '$devicedir/process_test')); () => device.pushCachedData(processTest, '$devicedir/process_test'));
steps.add(() => device.pushCachedData( steps.add(() => device.pushCachedData(

View file

@ -239,8 +239,9 @@
"buildtools/mac-x64/clang/bin/llvm-symbolizer", "buildtools/mac-x64/clang/bin/llvm-symbolizer",
"buildtools/win-x64/clang/bin/llvm-symbolizer.exe", "buildtools/win-x64/clang/bin/llvm-symbolizer.exe",
"third_party/android_tools/sdk/platform-tools/adb", "third_party/android_tools/sdk/platform-tools/adb",
"third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip", "third_party/android_tools/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/x86_64-unknown-linux-gnu/libc++.so",
"third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip", "third_party/android_tools/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objcopy",
"third_party/android_tools/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip",
"third_party/devtools/", "third_party/devtools/",
"third_party/webdriver/", "third_party/webdriver/",
"third_party/pkg/", "third_party/pkg/",
@ -574,7 +575,7 @@
"use-elf": true "use-elf": true
} }
}, },
"vm-aot-android-(debug|product|release)-(arm|arm64|arm64c)": { "vm-aot-android-(debug|product|release)-(ia32|x64|x64c|arm|arm64|arm64c|riscv64)": {
"options": { "options": {
"use-elf": true "use-elf": true
} }