blob: b6026ac2005cdf9985bb2ff2bf62993d0e00cd27 [file] [log] [blame]
# -*- bazel-starlark -*-
# Copyright 2023 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Siso configuration for nacl/linux."""
load("@builtin//struct.star", "module")
__filegroups = {
"native_client/toolchain/linux_x86/pnacl_newlib/bin/pydir:pydir": {
"type": "glob",
"includes": ["*.py"],
},
"native_client/toolchain/linux_x86/pnacl_newlib/lib:libllvm": {
"type": "glob",
"includes": ["libLLVM*.so"],
},
"native_client/toolchain/linux_x86/saigo_newlib/bin:clang": {
"type": "glob",
"includes": ["clang-*"],
},
"native_client/toolchain/linux_x86/saigo_newlib/lib:libso": {
"type": "glob",
"includes": ["*.so*"],
},
"native_client/toolchain/linux_x86/nacl_x86_glibc/lib/gcc/x86_64-nacl:crtbegin": {
"type": "glob",
"includes": ["crtbegin.o"],
},
"native_client/toolchain/linux_x86/nacl_x86_glibc/libexec/gcc/x86_64-nacl:ccbackend": {
"type": "glob",
"includes": ["cc1", "cc1plus", "collect2"],
},
}
__handlers = {}
def __step_config(ctx, step_config):
step_config["rules"].extend([
{
"name": "nacl_linux/pnacl-clang++",
"action": "newlib_pnacl.*_cxx",
"command_prefix": "../../native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang++",
"inputs": [
"native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang++",
],
"remote": True,
"input_root_absolute_path": True,
},
{
"name": "nacl_linux/pnacl-clang",
"action": "newlib_pnacl.*_cc",
"command_prefix": "../../native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang",
"inputs": [
"native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang",
],
"remote": True,
"input_root_absolute_path": True,
},
{
"name": "nacl_linux/glibc/x86_64-nacl-gcc",
"action": "glibc_x64_cc",
"inputs": [
"native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-gcc",
],
# ELF-32 doesn't work on gVisor,
# so will local-fallback if gVisor is used.
# TODO(b/278485912): remote=True for trusted instance.
"remote": False,
"input_root_absolute_path": True,
},
{
"name": "nacl_linux/glibc/x86_64-nacl-g++",
"action": "glibc_x64_cxx",
"inputs": [
"native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-g++",
],
# ELF-32 doesn't work on gVisor,
# so will local-fallback if gVisor is used.
# TODO(b/278485912): remote=True for trusted instance.
"remote": False,
"input_root_absolute_path": True,
},
{
"name": "nacl_linux/pnacl_newlib/x86_64-nacl-clang++",
"action": "clang_newlib_x64_cxx",
"inputs": [
"native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-clang++",
"native_client/toolchain/linux_x86/pnacl_newlib/x86_64-nacl/bin/ld",
],
"remote": True,
"input_root_absolute_path": True,
},
{
"name": "nacl_linux/pnacl_newlib/x86_64-nacl-clang",
"action": "clang_newlib_x64_cc",
"inputs": [
"native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-clang",
"native_client/toolchain/linux_x86/pnacl_newlib/x86_64-nacl/bin/ld",
],
"remote": True,
"input_root_absolute_path": True,
},
{
"name": "nacl_linux/saigo_newlib/x86_64-nacl-clang++",
"action": "irt_x64_cxx",
"command_prefix": "../../native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang++",
"inputs": [
"native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang++",
],
"remote": True,
"input_root_absolute_path": True,
},
{
"name": "nacl_linux/saigo_newlib/x86_64-nacl-clang",
"action": "irt_x64_cc",
"command_prefix": "../../native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang",
"inputs": [
"native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang",
],
"remote": True,
"input_root_absolute_path": True,
},
])
step_config["input_deps"].update({
"native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang": [
"native_client/toolchain/linux_x86/pnacl_newlib/bin/clang",
"native_client/toolchain/linux_x86/pnacl_newlib/bin/driver.conf",
"native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-llc",
"native_client/toolchain/linux_x86/pnacl_newlib/bin/pydir:pydir",
"native_client/toolchain/linux_x86/pnacl_newlib/lib:libllvm",
"native_client/toolchain/linux_x86/pnacl_newlib/x86_64-nacl/bin/ld",
],
"native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang++": [
"native_client/toolchain/linux_x86/pnacl_newlib/bin/clang",
"native_client/toolchain/linux_x86/pnacl_newlib/bin/driver.conf",
"native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-llc",
"native_client/toolchain/linux_x86/pnacl_newlib/bin/pydir:pydir",
"native_client/toolchain/linux_x86/pnacl_newlib/lib:libllvm",
"native_client/toolchain/linux_x86/pnacl_newlib/x86_64-nacl/bin/ld",
],
"native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-clang": [
"native_client/toolchain/linux_x86/pnacl_newlib/lib:libllvm",
],
"native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-clang++": [
"native_client/toolchain/linux_x86/pnacl_newlib/lib:libllvm",
],
"native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang": [
"native_client/toolchain/linux_x86/saigo_newlib/bin:clang",
"native_client/toolchain/linux_x86/saigo_newlib/lib:libso",
"native_client/toolchain/linux_x86/saigo_newlib/x86_64-nacl/bin/ld",
],
"native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang++": [
"native_client/toolchain/linux_x86/saigo_newlib/bin:clang",
"native_client/toolchain/linux_x86/saigo_newlib/lib:libso",
"native_client/toolchain/linux_x86/saigo_newlib/x86_64-nacl/bin/ld",
],
"native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-gcc": [
"native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-as",
"native_client/toolchain/linux_x86/nacl_x86_glibc/lib/gcc/x86_64-nacl:crtbegin",
"native_client/toolchain/linux_x86/nacl_x86_glibc/libexec/gcc/x86_64-nacl:ccbackend",
"native_client/toolchain/linux_x86/nacl_x86_glibc/x86_64-nacl/bin/as",
],
"native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-g++": [
"native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-as",
"native_client/toolchain/linux_x86/nacl_x86_glibc/lib/gcc/x86_64-nacl:crtbegin",
"native_client/toolchain/linux_x86/nacl_x86_glibc/libexec/gcc/x86_64-nacl:ccbackend",
"native_client/toolchain/linux_x86/nacl_x86_glibc/x86_64-nacl/bin/as",
],
})
return step_config
nacl = module(
"nacl",
step_config = __step_config,
filegroups = __filegroups,
handlers = __handlers,
)