blob: cc0fe3de0a2edb77f8b7eaa9c0a1bb04836dd86e [file] [log] [blame]
module(
name = "toolchains_llvm_bootstrapped",
version = "0.2.4",
bazel_compatibility = [">=7.4.0"],
compatibility_level = 0,
)
bazel_dep(name = "aspect_bazel_lib", version = "2.14.0")
bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "bazel_features", version = "1.24.0")
bazel_dep(name = "platforms", version = "0.0.11")
RULES_CC_COMMIT = "bbc0814aa22f1748c60722ad8972d16812eb206d" # HEAD
bazel_dep(name = "rules_cc", version = "0.1.1")
archive_override(
module_name = "rules_cc",
urls = ["https://github.com/bazelbuild/rules_cc/archive/%s.tar.gz" % RULES_CC_COMMIT],
integrity = "sha256-f/9TYhNs+hvmZ3cH7RvDdZFFTOk2a6DBSZZRfdb50rk=",
strip_prefix = "rules_cc-%s" % RULES_CC_COMMIT,
)
bazel_dep(name = "with_cfg.bzl", version = "0.9.2")
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
LLVM_VERSION = "20.1.5"
http_archive(
name = "llvm-toolchain-minimal-{llvm_version}-darwin-arm64".format(llvm_version = LLVM_VERSION),
urls = ["https://github.com/cerisier/toolchains_llvm_bootstrapped/releases/download/llvm-{llvm_version}/llvm-toolchain-minimal-{llvm_version}-darwin-arm64.tar.zst".format(llvm_version = LLVM_VERSION)],
sha256 = "c2e10898943b5d56e1a3552e3fa806382299d2242e312a7dd2ef6af7395c6143",
build_file = "//toolchain/llvm:BUILD.llvm_release.tpl",
)
http_archive(
name = "static-extras-toolchain-artifacts-darwin-arm64",
urls = ["https://github.com/cerisier/toolchains_llvm_bootstrapped/releases/download/bootstrap%2Fextras%2F20250505/toolchain-extra-prebuilts-20250505-darwin-arm64.tar.zst"],
sha256 = "5f21cff510da9a5fd6444f4239383c220246193bbc17d48ffe7d2583476d6a25",
build_file = "//bootstrap/extras:BUILD.extras.tpl",
)
http_archive(
name = "llvm-toolchain-minimal-{llvm_version}-linux-amd64".format(llvm_version = LLVM_VERSION),
urls = ["https://github.com/cerisier/toolchains_llvm_bootstrapped/releases/download/llvm-{llvm_version}/llvm-toolchain-minimal-{llvm_version}-linux-amd64-musl.tar.zst".format(llvm_version = LLVM_VERSION)],
sha256 = "bbba8aad0a92812978b4f57469d4a778c6887a3d2ab9bd70064da5b2d4ee98fd",
build_file = "//toolchain/llvm:BUILD.llvm_release.tpl",
)
http_archive(
name = "static-extras-toolchain-artifacts-linux-amd64",
urls = ["https://github.com/cerisier/toolchains_llvm_bootstrapped/releases/download/bootstrap%2Fextras%2F20250505/toolchain-extra-prebuilts-20250505-linux-amd64-musl.tar.zst"],
sha256 = "7296ab64eaea3276260d4db934d9986e6b8ec01effb89fb35cf87c02f93ea027",
build_file = "//bootstrap/extras:BUILD.extras.tpl",
)
http_archive(
name = "llvm-toolchain-minimal-{llvm_version}-linux-arm64".format(llvm_version = LLVM_VERSION),
urls = ["https://github.com/cerisier/toolchains_llvm_bootstrapped/releases/download/llvm-{llvm_version}/llvm-toolchain-minimal-{llvm_version}-linux-arm64-musl.tar.zst".format(llvm_version = LLVM_VERSION)],
sha256 = "6b365b9bcbe780241ddd9aae5dbb00d82ee0b65fa25a5361e126b0df5eb91dd1",
build_file = "//toolchain/llvm:BUILD.llvm_release.tpl",
)
http_archive(
name = "static-extras-toolchain-artifacts-linux-arm64",
urls = ["https://github.com/cerisier/toolchains_llvm_bootstrapped/releases/download/bootstrap%2Fextras%2F20250505/toolchain-extra-prebuilts-20250505-linux-arm64-musl.tar.zst"],
sha256 = "b886c1bc2c48a214b2a1076f14968f2e36fd9bfc926975f09515f287bbd9b734",
build_file = "//bootstrap/extras:BUILD.extras.tpl",
)
http_archive(
name = "musl_libc",
urls = ["https://musl.libc.org/releases/musl-1.2.5.tar.gz"],
strip_prefix = "musl-1.2.5",
patch_args = ["-p1"],
patches = [
"//third_party/libc/musl:1.2.5-CVE-2025-26519-1.patch",
"//third_party/libc/musl:1.2.5-CVE-2025-26519-2.patch",
],
integrity = "sha256-qaEYu+hNh2TaDqDSizqz+uhHf8fkCF2QECuFlvx8deQ=",
build_file = "//third_party/libc/musl:BUILD.tpl",
)
http_archive(
name = "compiler-rt",
urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.5/compiler-rt-20.1.5.src.tar.xz"],
strip_prefix = "compiler-rt-20.1.5.src",
sha256 = "bdcebca627f377ffcff5405cd5694efbddb14c89ad7d0ea481b1646a42bfeca3",
build_file = "//third_party/llvm-project/20.1.5/compiler-rt:BUILD.tpl",
)
http_archive(
name = "libcxx",
urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.5/libcxx-20.1.5.src.tar.xz"],
strip_prefix = "libcxx-20.1.5.src",
sha256 = "39ceddb7ee02103809e59b8a87904fc40a8e4f33ff5cce95e6da1fc22406349f",
build_file = "//third_party/llvm-project/20.1.5/libcxx:BUILD.tpl",
)
http_archive(
name = "libcxxabi",
urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.5/libcxxabi-20.1.5.src.tar.xz"],
strip_prefix = "libcxxabi-20.1.5.src",
sha256 = "cb9f20e6779a5ab7881b049469504a7da44aada6e9dc72c85dd68fc9c6430b57",
build_file = "//third_party/llvm-project/20.1.5/libcxxabi:BUILD.tpl",
)
http_archive(
name = "libunwind",
urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.5/libunwind-20.1.5.src.tar.xz"],
strip_prefix = "libunwind-20.1.5.src",
sha256 = "f0555603222189d8d2ff2d02747c63a3bbeb291fa72ce042c1a6d26399150baf",
build_file = "//third_party/llvm-project/20.1.5/libunwind:BUILD.tpl",
)
http_pkg_archive = use_repo_rule("//:http_pkg_archive.bzl", "http_pkg_archive")
http_pkg_archive(
name = "macosx15.4.sdk",
urls = ["https://swcdn.apple.com/content/downloads/10/32/082-12052-A_AHPGDY76PT/1a419zaf3vh8o9t3c0usblyr8eystpnsh5/CLTools_macOSNMOS_SDK.pkg"],
strip_files = [
"Library/Developer/CommandLineTools/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Ruby.framework/Versions/Current/Headers/ruby",
],
sha256 = "f8b0600aa4ad9b0b0b150fb62691dc561f47bc33ebc40546439f1460a0680913",
build_file = "//third_party/macosx.sdk:BUILD.MacOSX15.4.sdk.tpl",
strip_prefix = "Library/Developer/CommandLineTools/SDKs/MacOSX15.4.sdk",
)
glibc = use_extension("//runtimes/glibc/extension:glibc.bzl", "glibc")
# https://cerisier.github.io/glibc-headers/index.json
glibc.index(file = "//runtimes/glibc/extension:glibc_headers_index.json")
use_repo(glibc, "glibc")
kernel_headers = use_extension("//kernel/extension:kernel_headers.bzl", "kernel_headers")
# https://cerisier.github.io/kernel-headers/index.json
kernel_headers.index(file = "//kernel/extension:kernel_headers_index.json")
use_repo(kernel_headers, "kernel_headers")
## DEV DEPENDENCIES
GLIBC_STUBS_GENERATOR_COMMIT = "b8ef1c5f070b8297505a61d32ee9d6ca773d02b3"
bazel_dep(name = "glibc-stubs-generator", version = "2.0.1", dev_dependency = True)
archive_override(
module_name = "glibc-stubs-generator",
urls = ["https://github.com/cerisier/glibc-stubs-generator/archive/{}.tar.gz".format(GLIBC_STUBS_GENERATOR_COMMIT)],
integrity = "sha256-ZctTSdI8zXZrC0f78a7g9WNt8Xi+sIAnBZBNrIf5avk=",
strip_prefix = "glibc-stubs-generator-{}".format(GLIBC_STUBS_GENERATOR_COMMIT),
)
LIBSTDCXX_STUBS_GENERATOR_COMMIT = "0b271e429a4ab412de16946782257dbede9ca091"
bazel_dep(name = "libstdcxx-stubs-generator", version = "0.0.1", dev_dependency = True)
archive_override(
module_name = "libstdcxx-stubs-generator",
urls = ["https://github.com/cerisier/libstdcxx-stubs-generator/archive/{}.tar.gz".format(LIBSTDCXX_STUBS_GENERATOR_COMMIT)],
integrity = "sha256-LRoUyHeuA0qGZ7eFJ7iIGz15KiEYPx4Z+l+uY0GUDHw=",
strip_prefix = "libstdcxx-stubs-generator-{}".format(LIBSTDCXX_STUBS_GENERATOR_COMMIT),
)
bazel_dep(name = "rules_python", version = "0.40.0", dev_dependency = True)
llvm_raw = use_extension("//:llvm_raw.bzl", "llvm_raw", dev_dependency = True)
use_repo(llvm_raw, "llvm-raw", "llvm_zlib", "llvm_zstd")
llvm = use_extension("//:llvm.bzl", "llvm", dev_dependency = True)
llvm.configure(
targets = ["AArch64", "X86"],
)
use_repo(llvm, "llvm-project")
# llvm_configure = use_repo_rule("@llvm-raw//utils/bazel:configure.bzl", "llvm_configure")
# llvm_configure(name = "llvm-project")
## OVERRIDES PORTS FROM DEPENDENCIES
RULES_ZIG_COMMIT = "b9739c615ce62b64ee595ac4bcd9ee7cc06b0422" # branch=zml
bazel_dep(name = "rules_zig", version = "20250314.0-b9739c6", dev_dependency = True)
archive_override(
module_name = "rules_zig",
urls = ["https://github.com/zml/rules_zig/archive/{}.tar.gz".format(RULES_ZIG_COMMIT)],
integrity = "sha256-p1rYD9gvYS3DgBjN6jo1pB86Kr4k2wojKjVpYRTZ3Us=",
strip_prefix = "rules_zig-{}".format(RULES_ZIG_COMMIT),
)
zig = use_extension("@rules_zig//zig:extensions.bzl", "zig", dev_dependency = True)
zig.index(file = "//:zig_index.json")
zig.toolchain(zig_version = "0.14.0")
zig.mirrors(urls = [
"https://mirror.zml.ai/zig",
])
use_repo(zig, "zig_toolchains")
register_toolchains("@rules_zig//zig/target:all", dev_dependency = True)
register_toolchains("@zig_toolchains//:all", dev_dependency = True)
# Register the bootstrap toolchain since it is a prerequisite to all other toolchains.
register_toolchains(
"@toolchains_llvm_bootstrapped//toolchain/stage2:stage2_toolchain",
)