[infra] Add configuration for testing SIMARM64 on ARM64.

Bug: https://github.com/dart-lang/sdk/issues/60204
Change-Id: Id49d144bedb7eb2047ee1cc36dd737bff62e808e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/411840
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
Ryan Macnak
2025-02-25 13:22:17 -08:00
committed by Commit Queue
parent e1d8b2545e
commit 690b380a6a
7 changed files with 41 additions and 2 deletions
+3
View File
@@ -722,6 +722,8 @@ class Architecture extends NamedEnum {
// ignore: constant_identifier_names
static const simarm_x64 = Architecture._('simarm_x64');
static const simarm64 = Architecture._('simarm64');
// ignore: constant_identifier_names
static const simarm64_arm64 = Architecture._('simarm64_arm64');
static const simarm64c = Architecture._('simarm64c');
static const riscv32 = Architecture._('riscv32');
static const riscv64 = Architecture._('riscv64');
@@ -743,6 +745,7 @@ class Architecture extends NamedEnum {
simarm,
simarm_x64,
simarm64,
simarm64_arm64,
simarm64c,
riscv32,
riscv64,
@@ -308,6 +308,8 @@ class QemuConfig {
QemuConfig('qemu-arm', ['-L', '/usr/arm-linux-gnueabihf/']),
Architecture.arm64:
QemuConfig('qemu-aarch64', ['-L', '/usr/aarch64-linux-gnu/']),
Architecture.simarm64_arm64:
QemuConfig('qemu-aarch64', ['-L', '/usr/aarch64-linux-gnu/']),
Architecture.arm64c:
QemuConfig('qemu-aarch64', ['-L', '/usr/aarch64-linux-gnu/']),
Architecture.riscv32:
+3
View File
@@ -147,6 +147,9 @@ config("dart_arch_config") {
print("Invalid dart_target_arch: $dart_target_arch")
assert(false)
}
if (dart_force_simulator) {
defines += [ "USING_SIMULATOR" ]
}
}
config("dart_config") {
+3
View File
@@ -31,6 +31,9 @@ declare_args() {
# Available options are: arm, arm64, x64, ia32, riscv32, riscv64.
dart_target_arch = target_cpu
# Force use of the simulator even when the Dart target arch matches the current cpu.
dart_force_simulator = false
# The optimization level to use for debug builds. Defaults to 0 for builds with
# code coverage enabled.
dart_debug_optimization_level = "2"
+1 -1
View File
@@ -75,7 +75,7 @@ regress_47594_test: Skip # DynamicLibrary.process() is not available on Windows.
function_callbacks_leaf_test: SkipByDesign # Needs access to Dart executable
native_assets/*: SkipByDesign # Only intended to run on host oses with AOT binaries available, not available on QEMU.
[ $simulator ]
[ $arch != simarm64_arm64 && $simulator ]
*: Skip # FFI not yet supported on the arm simulator.
[ $compiler != dart2analyzer && $compiler != fasta && $runtime != dart_precompiled && $runtime != vm ]
+26 -1
View File
@@ -333,7 +333,7 @@
"builder-tag": "ffi"
}
},
"vm-(linux|mac|win|android|fuchsia)-(debug|product|release)-(ia32|x64|x64c|arm|arm64|arm64c|simarm|simarm64|simriscv32|simriscv64)": {
"vm-(linux|mac|win|android|fuchsia)-(debug|product|release)-(ia32|x64|x64c|arm|arm64|arm64c|simarm|simarm64|simarm64_arm64|simriscv32|simriscv64)": {
"options": {}
},
"vm-checked-(linux|mac|win|fuchsia)-(debug|product|release)-(ia32|x64|x64c|arm64|arm64c|simarm|simarm64|simriscv32|simriscv64)": {
@@ -847,6 +847,31 @@
}
]
},
{
"builders": [
"vm-ffi-mac-debug-simarm64_arm64",
"vm-ffi-mac-release-simarm64_arm64"
],
"meta": {
"description": "This configuration is used for running FFI tests"
},
"steps": [
{
"name": "build dart",
"script": "tools/build.py",
"arguments": [
"runtime"
]
},
{
"name": "vm ffi tests",
"arguments": [
"-nvm-${system}-${mode}-${arch}",
"ffi"
]
}
]
},
{
"builders": [
"vm-ffi-qemu-linux-release-arm"
+3
View File
@@ -205,6 +205,9 @@ def ToGnArgs(args, mode, arch, target_os, sanitizer, verify_sdk_hash,
gn_args['host_cpu'] = HostCpuForArch(arch)
gn_args['target_cpu'] = TargetCpuForArch(arch)
gn_args['dart_target_arch'] = DartTargetCpuForArch(arch)
if gn_args['target_cpu'] == gn_args['dart_target_arch'] and arch.startswith(
'sim'):
gn_args['dart_force_simulator'] = True
gn_args['dart_use_compressed_pointers'] = IsCompressedPointerArch(arch)
# Configure Crashpad library if it is used.