1# -*- bazel-starlark -*- 2# Copyright 2023 The Chromium Authors 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5"""Siso configuration for nacl/linux.""" 6 7load("@builtin//struct.star", "module") 8 9def __filegroups(ctx): 10 return { 11 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pydir:pydir": { 12 "type": "glob", 13 "includes": ["*.py"], 14 }, 15 "native_client/toolchain/linux_x86/pnacl_newlib/lib:libllvm": { 16 "type": "glob", 17 "includes": ["libLLVM*.so"], 18 }, 19 "native_client/toolchain/linux_x86/saigo_newlib/bin:clang": { 20 "type": "glob", 21 "includes": ["clang-*"], 22 }, 23 "native_client/toolchain/linux_x86/saigo_newlib/lib:libso": { 24 "type": "glob", 25 "includes": ["*.so*"], 26 }, 27 "native_client/toolchain/linux_x86/nacl_x86_glibc/lib/gcc/x86_64-nacl:crtbegin": { 28 "type": "glob", 29 "includes": ["crtbegin.o"], 30 }, 31 "native_client/toolchain/linux_x86/nacl_x86_glibc/libexec/gcc/x86_64-nacl:ccbackend": { 32 "type": "glob", 33 "includes": ["cc1", "cc1plus", "collect2"], 34 }, 35 # for precomputed subtrees 36 "native_client/toolchain/linux_x86/nacl_x86_glibc:header-files": { 37 "type": "glob", 38 "includes": ["*.h", "*/include/c++/*/*", "*/include/c++/*/*/*"], 39 }, 40 "native_client/toolchain/linux_x86/pnacl_newlib:header-files": { 41 "type": "glob", 42 "includes": ["*.h", "*/include/c++/*/*", "*/include/c++/*/*/*"], 43 }, 44 "native_client/toolchain/linux_x86/saigo_newlib:header-files": { 45 "type": "glob", 46 "includes": ["*.h", "*/include/c++/*/*", "*/include/c++/*/*/*"], 47 }, 48 } 49 50__handlers = {} 51 52def __step_config(ctx, step_config): 53 step_config["rules"].extend([ 54 { 55 "name": "nacl/pnacl-clang++", 56 "action": "newlib_pnacl.*_cxx", 57 "command_prefix": "../../native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang++", 58 "inputs": [ 59 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang++", 60 ], 61 "remote": True, 62 "input_root_absolute_path": True, 63 "timeout": "2m", 64 }, 65 { 66 "name": "nacl/pnacl-clang", 67 "action": "newlib_pnacl.*_cc", 68 "command_prefix": "../../native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang", 69 "inputs": [ 70 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang", 71 ], 72 "remote": True, 73 "input_root_absolute_path": True, 74 "timeout": "2m", 75 }, 76 { 77 "name": "nacl/glibc/x86_64-nacl-gcc", 78 "action": "glibc_x64_cc", 79 "inputs": [ 80 "native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-gcc", 81 ], 82 # ELF-32 doesn't work on gVisor, 83 # so will local-fallback if gVisor is used. 84 # TODO(b/278485912): remote=True for trusted instance. 85 "remote": False, 86 "input_root_absolute_path": True, 87 }, 88 { 89 "name": "nacl/glibc/x86_64-nacl-g++", 90 "action": "glibc_x64_cxx", 91 "inputs": [ 92 "native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-g++", 93 ], 94 # ELF-32 doesn't work on gVisor, 95 # so will local-fallback if gVisor is used. 96 # TODO(b/278485912): remote=True for trusted instance. 97 "remote": False, 98 "input_root_absolute_path": True, 99 }, 100 { 101 "name": "nacl/pnacl_newlib/x86_64-nacl-clang++", 102 "action": "clang_newlib_x64_cxx", 103 "inputs": [ 104 "native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-clang++", 105 "native_client/toolchain/linux_x86/pnacl_newlib/x86_64-nacl/bin/ld", 106 ], 107 "remote": True, 108 "input_root_absolute_path": True, 109 "timeout": "2m", 110 }, 111 { 112 "name": "nacl/pnacl_newlib/x86_64-nacl-clang", 113 "action": "clang_newlib_x64_cc", 114 "inputs": [ 115 "native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-clang", 116 "native_client/toolchain/linux_x86/pnacl_newlib/x86_64-nacl/bin/ld", 117 ], 118 "remote": True, 119 "input_root_absolute_path": True, 120 "timeout": "2m", 121 }, 122 { 123 "name": "nacl/saigo_newlib/x86_64-nacl-clang++", 124 "action": "irt_x64_cxx", 125 "command_prefix": "../../native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang++", 126 "inputs": [ 127 "native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang++", 128 ], 129 "remote": True, 130 "input_root_absolute_path": True, 131 "timeout": "2m", 132 }, 133 { 134 "name": "nacl/saigo_newlib/x86_64-nacl-clang", 135 "action": "irt_x64_cc", 136 "command_prefix": "../../native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang", 137 "inputs": [ 138 "native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang", 139 ], 140 "remote": True, 141 "input_root_absolute_path": True, 142 "timeout": "2m", 143 }, 144 ]) 145 146 step_config["input_deps"].update({ 147 "native_client/toolchain/linux_x86/nacl_x86_glibc:headers": [ 148 "native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-gcc", 149 "native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-g++", 150 "native_client/toolchain/linux_x86/nacl_x86_glibc:header-files", 151 ], 152 "native_client/toolchain/linux_x86/pnacl_newlib:headers": [ 153 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang", 154 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang++", 155 "native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-clang", 156 "native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-clang++", 157 "native_client/toolchain/linux_x86/pnacl_newlib:header-files", 158 ], 159 "native_client/toolchain/linux_x86/saigo_newlib:headers": [ 160 "native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang", 161 "native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang++", 162 "native_client/toolchain/linux_x86/saigo_newlib:header-files", 163 ], 164 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang": [ 165 "native_client/toolchain/linux_x86/pnacl_newlib/bin/clang", 166 "native_client/toolchain/linux_x86/pnacl_newlib/bin/driver.conf", 167 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-llc", 168 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pydir:pydir", 169 "native_client/toolchain/linux_x86/pnacl_newlib/lib:libllvm", 170 "native_client/toolchain/linux_x86/pnacl_newlib/x86_64-nacl/bin/ld", 171 ], 172 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang++": [ 173 "native_client/toolchain/linux_x86/pnacl_newlib/bin/clang", 174 "native_client/toolchain/linux_x86/pnacl_newlib/bin/driver.conf", 175 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-llc", 176 "native_client/toolchain/linux_x86/pnacl_newlib/bin/pydir:pydir", 177 "native_client/toolchain/linux_x86/pnacl_newlib/lib:libllvm", 178 "native_client/toolchain/linux_x86/pnacl_newlib/x86_64-nacl/bin/ld", 179 ], 180 "native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-clang": [ 181 "native_client/toolchain/linux_x86/pnacl_newlib/lib:libllvm", 182 ], 183 "native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-clang++": [ 184 "native_client/toolchain/linux_x86/pnacl_newlib/lib:libllvm", 185 ], 186 "native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang": [ 187 "native_client/toolchain/linux_x86/saigo_newlib/bin:clang", 188 "native_client/toolchain/linux_x86/saigo_newlib/lib:libso", 189 "native_client/toolchain/linux_x86/saigo_newlib/x86_64-nacl/bin/ld", 190 ], 191 "native_client/toolchain/linux_x86/saigo_newlib/bin/x86_64-nacl-clang++": [ 192 "native_client/toolchain/linux_x86/saigo_newlib/bin:clang", 193 "native_client/toolchain/linux_x86/saigo_newlib/lib:libso", 194 "native_client/toolchain/linux_x86/saigo_newlib/x86_64-nacl/bin/ld", 195 ], 196 "native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-gcc": [ 197 "native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-as", 198 "native_client/toolchain/linux_x86/nacl_x86_glibc/lib/gcc/x86_64-nacl:crtbegin", 199 "native_client/toolchain/linux_x86/nacl_x86_glibc/libexec/gcc/x86_64-nacl:ccbackend", 200 "native_client/toolchain/linux_x86/nacl_x86_glibc/x86_64-nacl/bin/as", 201 ], 202 "native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-g++": [ 203 "native_client/toolchain/linux_x86/nacl_x86_glibc/bin/x86_64-nacl-as", 204 "native_client/toolchain/linux_x86/nacl_x86_glibc/lib/gcc/x86_64-nacl:crtbegin", 205 "native_client/toolchain/linux_x86/nacl_x86_glibc/libexec/gcc/x86_64-nacl:ccbackend", 206 "native_client/toolchain/linux_x86/nacl_x86_glibc/x86_64-nacl/bin/as", 207 ], 208 }) 209 return step_config 210 211nacl = module( 212 "nacl", 213 step_config = __step_config, 214 filegroups = __filegroups, 215 handlers = __handlers, 216) 217