Skip to content

Commit 01acb2d

Browse files
committed
Another round of toolchain/platform improvements
1 parent 2fada58 commit 01acb2d

12 files changed

Lines changed: 81 additions & 235 deletions

File tree

.bazelrc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import %workspace%/bazel/defaults.bazelrc
22

33
common --test_output=errors
44
common --incompatible_disallow_empty_glob=False
5+
common --enable_platform_specific_config
56

67
# Define value used by tests
78
common --define=SOME_VAR=SOME_VALUE
@@ -10,9 +11,11 @@ common --define=SOME_VAR=SOME_VALUE
1011
common --@pypi//venv=default
1112

1213
common --incompatible_enable_cc_toolchain_resolution
13-
common --@toolchains_llvm_bootstrapped//config:experimental_stub_libgcc_s
14+
common --@llvm//config:experimental_stub_libgcc_s
1415
common --@rules_cc//cc/toolchains/args/archiver_flags:use_libtool_on_macos=false
1516

17+
common:linux --host_platform=//bazel/platforms:linux_host
18+
1619
# TODO(bzlmod): Don't break proto
1720
common --per_file_copt=external/.*protobuf.*@--PROTOBUF_WAS_NOT_SUPPOSED_TO_BE_BUILT
1821
common --host_per_file_copt=external/.*protobuf.*@--PROTOBUF_WAS_NOT_SUPPOSED_TO_BE_BUILT
@@ -22,6 +25,7 @@ common --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
2225
common --repo_env=BAZEL_NO_APPLE_CPP_TOOLCHAIN=1
2326

2427
common:ci --toolchain_resolution_debug='@@bazel_tools//tools/cpp:toolchain_type'
28+
common:ci --toolchain_resolution_debug='.*rust.*'
2529

2630
common:release --build_tag_filters=release
2731
common:release --stamp

MODULE.bazel

Lines changed: 49 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -52,53 +52,17 @@ use_repo(tel, "aspect_tools_telemetry_report")
5252
# Dev deps are the remainder of the file
5353

5454
# LLVM configuration
55-
bazel_dep(name = "toolchains_llvm_bootstrapped", version = "0.2.5", dev_dependency = IS_RELEASE)
56-
archive_override(
57-
module_name = "toolchains_llvm_bootstrapped",
58-
integrity = "sha256-+nddimV34BYO8YExiKLYG2kMoA2Sv+5ZoMRPQLJxNfE=",
59-
patch_strip = 1,
60-
patches = [
61-
"//bazel/patches:llvm_darwin_sysroot.patch",
62-
],
63-
strip_prefix = "toolchains_llvm_bootstrapped-121c8419394e76b5652c161369743c564799b2e3",
64-
urls = ["https://github.com/cerisier/toolchains_llvm_bootstrapped/archive/121c8419394e76b5652c161369743c564799b2e3/master.tar.gz"],
65-
)
55+
bazel_dep(name = "llvm", version = "0.6.1", dev_dependency = IS_RELEASE)
6656

6757
register_toolchains(
68-
"@toolchains_llvm_bootstrapped//toolchain:all",
69-
dev_dependency = IS_RELEASE,
70-
)
71-
72-
# Rust configuration
73-
bazel_dep(name = "rules_rust", version = "0.68.1", dev_dependency = IS_RELEASE)
74-
75-
rust = use_extension(
76-
"@rules_rust//rust:extensions.bzl",
77-
"rust",
78-
dev_dependency = IS_RELEASE,
79-
)
80-
rust.toolchain(
81-
edition = "2024",
82-
extra_target_triples = [
83-
"aarch64-apple-darwin",
84-
"x86_64-apple-darwin",
85-
"aarch64-unknown-linux-musl",
86-
"x86_64-unknown-linux-musl",
87-
],
88-
versions = ["1.88.0"],
89-
)
90-
use_repo(rust, "rust_toolchains")
91-
92-
register_toolchains(
93-
"@rust_toolchains//:all",
58+
"@llvm//toolchain:all",
9459
dev_dependency = IS_RELEASE,
9560
)
9661

9762
bazel_dep(name = "bazelrc-preset.bzl", version = "1.4.0", dev_dependency = IS_RELEASE)
9863
bazel_dep(name = "bazel_env.bzl", version = "0.5.0", dev_dependency = IS_RELEASE)
9964
bazel_dep(name = "bzip2", version = "1.0.8.bcr.3", dev_dependency = IS_RELEASE)
10065
bazel_dep(name = "gazelle", version = "0.45.0", dev_dependency = IS_RELEASE)
101-
bazel_dep(name = "rules_rs", version = "0.0.26", dev_dependency = IS_RELEASE)
10266
bazel_dep(name = "xz", version = "5.4.5.bcr.7", dev_dependency = IS_RELEASE)
10367
bazel_dep(name = "zstd", version = "1.5.7", dev_dependency = IS_RELEASE)
10468
bazel_dep(name = "rules_multitool", version = "1.9.0", dev_dependency = IS_RELEASE)
@@ -107,6 +71,24 @@ multitool = use_extension("@rules_multitool//multitool:extension.bzl", "multitoo
10771
multitool.hub(lockfile = "//tools:tools.lock.json")
10872
use_repo(multitool, "multitool")
10973

74+
# Rust configuration
75+
bazel_dep(name = "rules_rs", version = "0.0.37", dev_dependency = IS_RELEASE)
76+
77+
toolchains = use_extension("@rules_rs//rs/experimental/toolchains:module_extension.bzl", "toolchains", dev_dependency = IS_RELEASE)
78+
toolchains.toolchain(
79+
edition = "2024",
80+
version = "1.93.1",
81+
)
82+
use_repo(toolchains, "default_rust_toolchains")
83+
84+
register_toolchains(
85+
"@default_rust_toolchains//:all",
86+
dev_dependency = IS_RELEASE,
87+
)
88+
89+
rules_rust = use_extension("@rules_rs//rs/experimental:rules_rust.bzl", "rules_rust")
90+
use_repo(rules_rust, "rules_rust")
91+
11092
crate = use_extension(
11193
"@rules_rs//rs:extensions.bzl",
11294
"crate",
@@ -118,10 +100,13 @@ crate.from_cargo(
118100
cargo_toml = "//:Cargo.toml",
119101
platform_triples = [
120102
"aarch64-apple-darwin",
103+
"aarch64-unknown-linux-gnu",
121104
"aarch64-unknown-linux-musl",
122105
"x86_64-apple-darwin",
106+
"x86_64-unknown-linux-gnu",
123107
"x86_64-unknown-linux-musl",
124108
],
109+
use_experimental_platforms = True,
125110
)
126111
crate.annotation(
127112
crate = "backtrace",
@@ -148,6 +133,32 @@ crate.annotation(
148133
repositories = ["crates"],
149134
deps = ["@@xz+//:lzma"],
150135
)
136+
crate.annotation(
137+
additive_build_file_content = """
138+
load("@rules_cc//cc:defs.bzl", "cc_import")
139+
140+
cc_import(
141+
name = "windows_import_lib",
142+
static_library = glob(["lib/*.a"])[0],
143+
)
144+
""",
145+
crate = "windows_x86_64_gnullvm",
146+
gen_build_script = "off",
147+
deps = [":windows_import_lib"],
148+
)
149+
crate.annotation(
150+
additive_build_file_content = """
151+
load("@rules_cc//cc:defs.bzl", "cc_import")
152+
153+
cc_import(
154+
name = "windows_import_lib",
155+
static_library = glob(["lib/*.a"])[0],
156+
)
157+
""",
158+
crate = "windows_aarch64_gnullvm",
159+
gen_build_script = "off",
160+
deps = [":windows_import_lib"],
161+
)
151162
use_repo(crate, "crates")
152163

153164
# TODO: Replace with bazel_features?

bazel/patches/llvm_darwin_sysroot.patch

Lines changed: 0 additions & 27 deletions
This file was deleted.

bazel/platforms/BUILD.bazel

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,16 @@
1-
load("//bazel/platforms/config:defs.bzl", "linker_suffix", "platforms")
2-
3-
[platform(
4-
name = "{}_{}{}".format(
5-
p.os,
6-
p.cpu,
7-
linker_suffix(
8-
"_",
9-
p.linker,
10-
),
11-
),
1+
platform(
2+
name = "linux_host",
123
constraint_values = [
13-
"@platforms//os:{}".format(p.os),
14-
"@platforms//cpu:{}".format(p.cpu),
15-
"//bazel/platforms/linkers:{}".format(p.linker),
4+
"@llvm//constraints/libc:gnu.2.28",
165
],
17-
visibility = ["//visibility:public"],
18-
) for p in platforms]
19-
20-
alias(
21-
name = "linux_amd64",
22-
actual = ":linux_x86_64",
23-
visibility = ["//visibility:public"],
24-
)
25-
26-
alias(
27-
name = "linux_arm64",
28-
actual = ":linux_aarch64",
29-
visibility = ["//visibility:public"],
6+
parents = ["@platforms//host"],
307
)
318

329
platform(
3310
name = "rbe",
34-
constraint_values = [
35-
"@platforms//cpu:x86_64",
36-
"@platforms//os:linux",
37-
"@bazel_tools//tools/cpp:clang",
38-
],
3911
exec_properties = {
4012
"container-image": "docker://ubuntu:22.04",
4113
"OSFamily": "Linux",
4214
},
15+
parents = ["@rules_rs//rs/experimental/platforms:x86_64-unknown-linux-gnu"],
4316
)

bazel/platforms/config/BUILD.bazel

Lines changed: 0 additions & 31 deletions
This file was deleted.

bazel/platforms/config/defs.bzl

Lines changed: 0 additions & 19 deletions
This file was deleted.

bazel/platforms/linkers/BUILD.bazel

Lines changed: 0 additions & 19 deletions
This file was deleted.

bazel/platforms/toolchains/BUILD.bazel

Lines changed: 0 additions & 27 deletions
This file was deleted.

bazel/platforms/toolchains/defs.bzl

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)