[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:
committed by
Commit Queue
parent
1e92be4f2c
commit
1d53d28e96
@@ -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": [
|
||||
{
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user