| # -*- 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, |
| ) |