Skip to content

Commit cd18d9e

Browse files
committed
try using a hermetic LLVM toolchain
1 parent 0f72892 commit cd18d9e

1 file changed

Lines changed: 18 additions & 27 deletions

File tree

MODULE.bazel

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
11
module(name = "heir")
22

33
bazel_dep(name = "bazel_skylib", version = "1.9.0")
4+
bazel_dep(name = "rules_cc", version = "0.2.18")
45

5-
# This must come before apple_support cf. https://github.com/bazelbuild/bazel/issues/25728
6-
bazel_dep(name = "rules_cc", version = "0.2.13")
6+
# hermetic LLVM toolchain (for C++ compiler and linker)
7+
bazel_dep(name = "llvm", version = "0.7.8")
78

8-
# Apple compilation support.
9-
# Note this requires full xcode, not just commandline tools
10-
#
11-
# Tested with:
12-
#
13-
# $ /usr/bin/xcodebuild -version
14-
# Xcode 16.2
15-
# Build version 16C5032a
16-
bazel_dep(name = "apple_support", version = "1.24.1", repo_name = "build_bazel_apple_support")
17-
bazel_dep(name = "rules_apple", version = "3.20.1")
9+
register_toolchains("@llvm//:all")
1810

1911
# Gazelle puglin for BUILD file autogeneration
2012
bazel_dep(name = "gazelle", version = "0.47.0")
@@ -24,9 +16,9 @@ bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.8.2", dev_dependenc
2416
# provides the `license` rule, which is required because llvm's gentbl_rule
2517
# implicitly depends upon the target '//:license'. How bizarre.
2618
bazel_dep(name = "rules_license", version = "1.0.0")
27-
bazel_dep(name = "platforms", version = "1.0.0")
19+
bazel_dep(name = "platforms", version = "1.1.0")
2820
bazel_dep(name = "rules_go", version = "0.53.0")
29-
bazel_dep(name = "rules_python", version = "1.5.1")
21+
bazel_dep(name = "rules_python", version = "1.7.0")
3022
bazel_dep(name = "googletest", version = "1.17.0")
3123
bazel_dep(name = "fuzztest", version = "20250805.0")
3224
bazel_dep(name = "google_benchmark", version = "1.9.1")
@@ -38,22 +30,21 @@ bazel_dep(name = "re2", version = "2025-08-12")
3830
bazel_dep(name = "isl", version = "0.27")
3931
bazel_dep(name = "pocketfft", version = "0.0.2")
4032
bazel_dep(name = "openfhe", version = "1.4.2.bcr.1")
41-
bazel_dep(name = "abc", version = "0.0.0-20250903-yosyshq.bcr.1")
33+
bazel_dep(name = "abc", version = "0.64-yosyshq.bcr.1")
4234
bazel_dep(name = "yosys", version = "0.57.bcr.2")
4335

44-
# Yosys pulls in bison@3.8.2 from BCR, but its hand-rolled config breaks with newer macOS SDK versions.
45-
# Therefore, we pull in this updated BCR version which uses @rules_cc_autoconf instead of the hand-rolled config.
46-
single_version_override(
47-
module_name = "bison",
48-
version = "3.8.2.bcr.2",
49-
)
36+
# yosys deps needing newer versions for bazel compatibility
37+
bazel_dep(name = "bison", version = "3.8.2.bcr.5")
38+
bazel_dep(name = "m4", version = "1.4.21.bcr.1")
39+
bazel_dep(name = "libffi", version = "3.4.7.bcr.4")
5040

51-
# Yosys also pulls in libffi@3.4.7.bcr.3, but that version does not work on aarch64 linux.
52-
# Therefore, we pull in this updated BCR version which specifically adds support for aarch64 linux.
53-
single_version_override(
54-
module_name = "libffi",
55-
version = "3.4.7.bcr.4",
56-
)
41+
# Clang 21 compatibility
42+
# Cf. https://github.com/bazelbuild/bazel-central-registry/pull/7989
43+
bazel_dep(name = "gawk", version = "5.3.2.bcr.7")
44+
45+
# Clang 21 compatibility
46+
# Cf. https://github.com/bazelbuild/bazel-central-registry/pull/7915
47+
bazel_dep(name = "sed", version = "4.9.bcr.5")
5748

5849
# LLVM dependency uses module extensions because none of these are in the BCR
5950
llvm_extensions = use_extension("//bazel:extensions.bzl", "llvm_deps")

0 commit comments

Comments
 (0)