| load(":cc_toolchain_config.bzl", "host_cc_toolchain_config") | 
 |  | 
 | # Toolchain definitions. | 
 | # | 
 | # We currently define two toolchains: | 
 | # | 
 | #  - //build/toolchain:host_cc_toolchain , which points to our hermetic sandbox | 
 | #    sysroot default compiler toolchain. It is mainly used to target the execution platform | 
 | #    inside the sandbox (i.e. build tooling). | 
 | #  - //build/toolchain/musl-host-gcc:musl_host_toolchain , which combines the sandbox sysroot | 
 | #    gcc compiler with a sysroot tarball that targets the Metropolis node | 
 | #    runtime. This can be used to build C libraries/tools running within the | 
 | #    Metropolis node image or on the (unknown) host operating system outside the sandbox. | 
 |  | 
 | # This file defines //build/toolchain:host_cc_toolchain. | 
 | # | 
 | # This is a C++ toolchain that uses GCC from the sandbox sysroot at hardcoded paths. We | 
 | # can get away with this, as currently the entire build is performed in a hermetic | 
 | # sandbox sysroot (see: //third_party/sandboxroot). We define this toolchain so | 
 | # that we have full control over all configuration of it, which we need as we | 
 | # are building some fairly odd C binaries (notably, a qboot bootloader for | 
 | # testing). | 
 | # | 
 | # The host_cc toolchain suite is enabled for all cc_* targets whose | 
 | # platform isn't matching a more specific toolchain. | 
 | # | 
 | # This, and :cc_toolchain_config.bzl is based on the following tutorial: | 
 | # https://docs.bazel.build/versions/master/tutorial/cc-toolchain-config.html | 
 |  | 
 | package(default_visibility = ["//visibility:public"]) | 
 |  | 
 | filegroup(name = "empty") | 
 |  | 
 | cc_toolchain( | 
 |     name = "host_cc_k8_toolchain", | 
 |     all_files = ":empty", | 
 |     ar_files = ":empty", | 
 |     as_files = ":empty", | 
 |     compiler_files = ":empty", | 
 |     dwp_files = ":empty", | 
 |     linker_files = ":empty", | 
 |     objcopy_files = ":empty", | 
 |     strip_files = ":empty", | 
 |     supports_param_files = 0, | 
 |     toolchain_config = ":host_cc_k8_toolchain_config", | 
 |     toolchain_identifier = "host-k8-toolchain", | 
 | ) | 
 |  | 
 | host_cc_toolchain_config(name = "host_cc_k8_toolchain_config") | 
 |  | 
 | toolchain( | 
 |     name = "host_cc_toolchain", | 
 |     exec_compatible_with = [ | 
 |         "@platforms//os:linux", | 
 |         "@platforms//cpu:x86_64", | 
 |     ], | 
 |     target_compatible_with = [ | 
 |         "@platforms//os:linux", | 
 |         "@platforms//cpu:x86_64", | 
 |     ], | 
 |     toolchain = ":host_cc_k8_toolchain", | 
 |     toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", | 
 | ) |