*: migrate to CC toolchains and Bazel 5.4.0
Change-Id: Iff3c0ddda4413dd0c5fa657a5b7813223e98611e
Reviewed-on: https://review.monogon.dev/c/monogon/+/1079
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/build/platforms/BUILD.bazel b/build/platforms/BUILD.bazel
new file mode 100644
index 0000000..e612a9c
--- /dev/null
+++ b/build/platforms/BUILD.bazel
@@ -0,0 +1,28 @@
+# Generic platform for Linux x86_64 targets.
+platform(
+ name = "linux_amd64",
+ constraint_values = [
+ "@platforms//os:linux",
+ "@platforms//cpu:x86_64",
+ ],
+)
+
+# EFI preboot environment for x86_64 machines.
+platform(
+ name = "efi_amd64",
+ constraint_values = [
+ "//build/platforms/os:efi",
+ "@platforms//cpu:x86_64",
+ ],
+)
+
+# Linux x86_64 platform with static linking
+# (i.e. Metropolis node, scratch containers...).
+platform(
+ name = "linux_amd64_static",
+ constraint_values = [
+ "@platforms//os:linux",
+ "@platforms//cpu:x86_64",
+ "//build/platforms/linkmode:musl-static",
+ ],
+)
diff --git a/build/platforms/linkmode/BUILD.bazel b/build/platforms/linkmode/BUILD.bazel
new file mode 100644
index 0000000..8a7f99c
--- /dev/null
+++ b/build/platforms/linkmode/BUILD.bazel
@@ -0,0 +1,14 @@
+package(
+ default_visibility = ["//visibility:public"],
+)
+
+# Minimal Metropolis node environment. No dynamic linker,
+# so everything has to be statically linked.
+constraint_value(
+ name = "musl-static",
+ constraint_setting = ":linkmode",
+)
+
+constraint_setting(
+ name = "linkmode",
+)
diff --git a/build/platforms/os/BUILD.bazel b/build/platforms/os/BUILD.bazel
new file mode 100644
index 0000000..3775b39
--- /dev/null
+++ b/build/platforms/os/BUILD.bazel
@@ -0,0 +1,9 @@
+package(
+ default_visibility = ["//visibility:public"],
+)
+
+# EFI preboot environment
+constraint_value(
+ name = "efi",
+ constraint_setting = "@platforms//os:os",
+)