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/fltused.c b/build/toolchain/llvm-efi/fltused.c
new file mode 100644
index 0000000..a6ca646
--- /dev/null
+++ b/build/toolchain/llvm-efi/fltused.c
@@ -0,0 +1,6 @@
+// This is a marker symbol emitted by MSVC-ABI compatible compilers. Its presence indicates that the linked binary
+// contains instructions working with floating-point registers. Since we do not have a standard library which consumes
+// it we can just define it as zero.
+// See https://github.com/rust-lang/rust/issues/62785#issuecomment-531186089 for more discussion.
+// Since building static libraries is not possible with Bazel this is compiled and checked in.
+int _fltused __attribute__((used)) = 0;
\ No newline at end of file