bazel: experiment with clang toolchain

This commit is contained in:
Malte Poll 2023-03-20 17:54:34 +01:00
parent 4f37fe38f9
commit dc377a83a6
7 changed files with 112 additions and 31 deletions

View file

@ -50,40 +50,100 @@ buildifier_deps()
# C / C++ toolchains
load("//bazel/toolchains:zig_cc_deps.bzl", "zig_cc_deps")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
zig_cc_deps()
BAZEL_TOOLCHAIN_TAG = "0.8.2"
load("@bazel-zig-cc//toolchain:defs.bzl", zig_toolchains = "toolchains")
BAZEL_TOOLCHAIN_SHA = "0fc3a2b0c9c929920f4bed8f2b446a8274cad41f5ee823fd3faa0d7641f20db0"
# See https://ziglang.org/download/ for the latest releases
zig_toolchains(
host_platform_sha256 = {
"linux-aarch64": "b759a11993949531c692ccfc3d1a004b14df714a7a3515fe0b5c90c9a7631d61",
"linux-x86_64": "028dad5189e02b2058679b64df16e854a1c1ca0e6044b334d4f3be6e35544f07",
"macos-aarch64": "5709c27d581988f50f5e6fd5b69d92707787e803a1d04992e290b764617664e6",
"macos-x86_64": "88d194adb2f3c1a9edbb4a24d018007d5f827a57d1d26b2d9f3459236da1b7b6",
"windows-x86_64": "75e510bda108e4d78b89d5d1d09e70ea8595fac7c43b5611f280668881adb09d",
},
version = "0.11.0-dev.1638+7199d7c77",
http_archive(
name = "com_grail_bazel_toolchain",
canonical_id = BAZEL_TOOLCHAIN_TAG,
sha256 = BAZEL_TOOLCHAIN_SHA,
strip_prefix = "bazel-toolchain-{tag}".format(tag = BAZEL_TOOLCHAIN_TAG),
url = "https://github.com/grailbio/bazel-toolchain/archive/refs/tags/{tag}.tar.gz".format(tag = BAZEL_TOOLCHAIN_TAG),
)
load("@com_grail_bazel_toolchain//toolchain:deps.bzl", "bazel_toolchain_dependencies")
bazel_toolchain_dependencies()
load("@com_grail_bazel_toolchain//toolchain:rules.bzl", "llvm_toolchain")
llvm_toolchain(
name = "llvm_toolchain",
llvm_version = "14.0.0",
)
http_archive(
name = "org_chromium_sysroot_linux_x64",
build_file_content = """
filegroup(
name = "sysroot",
srcs = glob(["*/**"]),
visibility = ["//visibility:public"],
)
""",
sha256 = "bacf1506da1bfc9dbb4e856aa61b2a80af75956d4f812708e29058042c27b444",
urls = ["https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/3bdb3503702d35520d101fc5eec9a8ab5353149f/debian_bullseye_amd64_sysroot.tar.xz"],
)
llvm_toolchain(
name = "llvm_toolchain_with_sysroot",
llvm_versions = {
"": "14.0.0",
},
sysroot = {
# "linux-x86_64": "@org_chromium_sysroot_linux_x64//:sysroot",
"linux-x86_64": "@//rpm:sysroot-files",
},
# We can share the downloaded LLVM distribution with the first configuration.
toolchain_roots = {
"": "@llvm_toolchain_llvm//",
},
)
load("@llvm_toolchain//:toolchains.bzl", "llvm_register_toolchains")
llvm_register_toolchains()
register_toolchains(
"@zig_sdk//libc_aware/toolchain:linux_amd64_gnu.2.34",
"@zig_sdk//libc_aware/toolchain:linux_arm64_gnu.2.34",
"@zig_sdk//libc_aware/toolchain:linux_amd64_musl",
"@zig_sdk//libc_aware/toolchain:linux_arm64_musl",
"@zig_sdk//toolchain:linux_amd64_gnu.2.34",
"@zig_sdk//toolchain:linux_arm64_gnu.2.34",
"@zig_sdk//toolchain:linux_amd64_musl",
"@zig_sdk//toolchain:linux_arm64_musl",
"@zig_sdk//toolchain:darwin_amd64",
"@zig_sdk//toolchain:darwin_arm64",
"@zig_sdk//toolchain:windows_amd64",
"@llvm_toolchain//:cc-toolchain-x86_64-linux",
"@llvm_toolchain_with_sysroot//:cc-toolchain-x86_64-linux",
)
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# load("//bazel/toolchains:zig_cc_deps.bzl", "zig_cc_deps")
# zig_cc_deps()
# load("@bazel-zig-cc//toolchain:defs.bzl", zig_toolchains = "toolchains")
# # See https://ziglang.org/download/ for the latest releases
# zig_toolchains(
# host_platform_sha256 = {
# "linux-aarch64": "b759a11993949531c692ccfc3d1a004b14df714a7a3515fe0b5c90c9a7631d61",
# "linux-x86_64": "028dad5189e02b2058679b64df16e854a1c1ca0e6044b334d4f3be6e35544f07",
# "macos-aarch64": "5709c27d581988f50f5e6fd5b69d92707787e803a1d04992e290b764617664e6",
# "macos-x86_64": "88d194adb2f3c1a9edbb4a24d018007d5f827a57d1d26b2d9f3459236da1b7b6",
# "windows-x86_64": "75e510bda108e4d78b89d5d1d09e70ea8595fac7c43b5611f280668881adb09d",
# },
# version = "0.11.0-dev.1638+7199d7c77",
# )
# register_toolchains(
# "@zig_sdk//libc_aware/toolchain:linux_amd64_gnu.2.34",
# "@zig_sdk//libc_aware/toolchain:linux_arm64_gnu.2.34",
# "@zig_sdk//libc_aware/toolchain:linux_amd64_musl",
# "@zig_sdk//libc_aware/toolchain:linux_arm64_musl",
# "@zig_sdk//toolchain:linux_amd64_gnu.2.34",
# "@zig_sdk//toolchain:linux_arm64_gnu.2.34",
# "@zig_sdk//toolchain:linux_amd64_musl",
# "@zig_sdk//toolchain:linux_arm64_musl",
# "@zig_sdk//toolchain:darwin_amd64",
# "@zig_sdk//toolchain:darwin_arm64",
# "@zig_sdk//toolchain:windows_amd64",
# )
http_archive(
name = "rules_foreign_cc",

View file

@ -58,7 +58,7 @@ go_binary(
platform_binary(
name = "bootstrapper_linux_amd64",
platform = "@zig_sdk//libc_aware/platform:linux_amd64_gnu.2.34",
platform = "@com_grail_bazel_toolchain//platforms:linux-x86_64",
target_file = ":bootstrapper",
visibility = ["//visibility:public"],
)

View file

@ -37,7 +37,7 @@ go_binary(
platform_binary(
name = "debugd_linux_amd64",
platform = "@zig_sdk//libc_aware/platform:linux_amd64_gnu.2.34",
platform = "@com_grail_bazel_toolchain//platforms:linux-x86_64",
target_file = ":debugd",
visibility = ["//visibility:public"],
)

View file

@ -39,7 +39,7 @@ go_binary(
platform_binary(
name = "disk-mapper_linux_amd64",
platform = "@zig_sdk//libc_aware/platform:linux_amd64_gnu.2.34",
platform = "@com_grail_bazel_toolchain//platforms:linux-x86_64",
target_file = ":cmd",
visibility = ["//visibility:public"],
)

View file

@ -25,7 +25,7 @@ go_binary(
platform_binary(
name = "measurement-reader_linux_amd64",
platform = "@zig_sdk//libc_aware/platform:linux_amd64_gnu.2.34",
platform = "@com_grail_bazel_toolchain//platforms:linux-x86_64",
target_file = ":cmd",
visibility = ["//visibility:public"],
)

View file

@ -68,6 +68,13 @@ genrule(
visibility = ["//visibility:public"],
)
rpmtree(
name = "sysroot",
rpms = [
"@glibc-0__2.36-9.fc37.x86_64//rpm",
],
)
rpmtree(
name = "cryptsetup-devel",
rpms = [
@ -452,3 +459,17 @@ tar2files(
tar = ":libvirt-devel",
visibility = ["//visibility:public"],
)
tar2files(
name = "sysroot-files",
files = {
"": [
"usr/lib64ld-linux-x86-64.so.2",
"usr/lib64libc.so.6",
"usr/lib64libpthread.so.0",
"usr/lib64libm.so.6",
],
},
tar = ":sysroot",
visibility = ["//visibility:public"],
)

View file

@ -26,7 +26,7 @@ go_binary(
platform_binary(
name = "upgrade_agent_linux_amd64",
platform = "@zig_sdk//libc_aware/platform:linux_amd64_gnu.2.34",
platform = "@com_grail_bazel_toolchain//platforms:linux-x86_64",
target_file = ":cmd",
visibility = ["//visibility:public"],
)