b/t/llvm-efi: add EFI toolchain based on LLVM
This adds a Bazel toolchain for building EFI binaries using rules_cc
with LLVM installed in the container.
It does not yet add an EFI standard library.
Change-Id: I9eb15de6f4f800ab6351607d2fb01dad3135da9f
Reviewed-on: https://review.monogon.dev/c/monogon/+/333
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
diff --git a/build/toolchain/llvm-efi/BUILD b/build/toolchain/llvm-efi/BUILD
new file mode 100644
index 0000000..3cfa67f
--- /dev/null
+++ b/build/toolchain/llvm-efi/BUILD
@@ -0,0 +1,32 @@
+load(":cc_toolchain_config.bzl", "efi_k8_cc_toolchain_config")
+
+package(default_visibility = ["//visibility:public"])
+
+filegroup(name = "empty")
+
+cc_toolchain_suite(
+ name = "efi_cc_suite",
+ toolchains = {
+ "k8": ":efi_k8_cc_toolchain",
+ },
+)
+
+filegroup(
+ name = "fltused",
+ srcs = ["fltused.o"],
+)
+
+cc_toolchain(
+ name = "efi_k8_cc_toolchain",
+ all_files = ":empty",
+ compiler_files = ":empty",
+ dwp_files = ":empty",
+ linker_files = ":fltused",
+ objcopy_files = ":empty",
+ strip_files = ":empty",
+ supports_param_files = 0,
+ toolchain_config = ":efi_k8_cc_toolchain_config",
+ toolchain_identifier = "efi-k8-toolchain",
+)
+
+efi_k8_cc_toolchain_config(name = "efi_k8_cc_toolchain_config")