[infra] Setup for x64 reclient on Linux ARM64.

Change-Id: I2ff065c8b962d768f93ea3304544ceb527f9c266
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/429466
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
This commit is contained in:
Ryan Macnak
2025-05-20 13:43:11 -07:00
committed by Commit Queue
parent 1e92be4f2c
commit 1d53d28e96
4 changed files with 28 additions and 5 deletions
+13
View File
@@ -482,6 +482,19 @@ deps = {
'dep_type': 'cipd',
},
# linux-arm64 package is not available, use the linux-x64 package and
# rely on transparent emulation.
Var("dart_root") + '/buildtools/reclient-linux': {
'packages': [
{
'package': 'infra/rbe/client/linux-amd64',
'version': Var('reclient_version'),
}
],
'condition': 'host_os == "linux"',
'dep_type': 'cipd',
},
Var("dart_root") + "/third_party/webdriver/chrome": {
"packages": [
{
+1 -1
View File
@@ -22,7 +22,7 @@ if (use_rbe) {
rewrapper_args + [ "--labels=type=compile,compiler=clang,lang=cpp" ]
# TODO: Unfortunately I see no way to get build_arch reliably.
if (rbe_os != host_os) {
if (rbe_os != host_os || rbe_cpu != host_cpu) {
compiler_args += [
"--inputs=build/rbe,buildtools/$rbe_os-$rbe_cpu/clang/bin/llvm",
"--remote_wrapper=../../build/rbe/llvm.sh",
+3
View File
@@ -29,6 +29,9 @@ declare_args() {
if (host_os == "win") {
rbe_dir =
rebase_path(_dart_root + "/buildtools/reclient-win", root_build_dir)
} else if (host_os == "linux") {
rbe_dir =
rebase_path(_dart_root + "/buildtools/reclient-linux", root_build_dir)
} else {
rbe_dir = rebase_path(_dart_root + "/buildtools/reclient", root_build_dir)
}
+11 -4
View File
@@ -44,7 +44,7 @@ def BuildOptions():
other_group.add_argument("-j",
type=int,
help='Ninja -j option for RBE builds.',
default=200 if sys.platform == 'win32' else 1000)
default=200 if sys.platform == 'win32' else 500)
other_group.add_argument("-l",
type=int,
help='Ninja -l option for RBE builds.',
@@ -134,10 +134,12 @@ bootstrap_path = None
def StartRBE(out_dir, env):
global rbe_started, bootstrap_path
if not rbe_started:
if utils.IsWindows():
rbe_dir = 'buildtools/reclient-win'
if HOST_OS == 'win32':
rbe_dir = 'buildtools/reclient-win'
elif HOST_OS == 'linux':
rbe_dir = 'buildtools/reclient-linux'
else:
rbe_dir = 'buildtools/reclient'
rbe_dir = 'buildtools/reclient'
with open(os.path.join(out_dir, 'args.gn'), 'r') as fp:
for line in fp:
if 'rbe_dir' in line:
@@ -300,6 +302,11 @@ def Main():
env.pop('LIBRARY_PATH', None)
env.pop('SDKROOT', None)
# Help QEMU binfmt work for executables that include dynamic links, such as
# reclient's scandeps_server.
if sys.platform == 'linux':
env['QEMU_LD_PREFIX'] = "/usr/x86_64-linux-gnu/"
# Always run GN before building.
gn_py.RunGnOnConfiguredConfigurations(options, env)