From f4dfbb5967b17c6b54fab3ce05dd70727b7cc0cf Mon Sep 17 00:00:00 2001 From: Ralf Anton Beier Date: Thu, 21 May 2026 19:50:54 +0200 Subject: [PATCH] ci: bump rules_rocq_rust pin to hermetic-toolchain fix The "Rocq Formal Proofs" CI job (bazel build //proofs/...) failed when the rocq_of_rust_source repository rule built the rocq-of-rust-rustc binary from source: rust-lld: error: unable to find library -lLLVM-19-rust-1.85.0-nightly rocq-of-rust is a rustc driver, so it dynamically links librustc_driver -> libLLVM. librustc_driver is passed by absolute path, but libLLVM is passed as -lLLVM-19-rust-1.85.0-nightly and must be resolved via linker search paths. That .so lives in /lib, which was never on LIBRARY_PATH. LOOM pinned rules_rocq_rust at 307b65f (Feb 2), whose repository rule only passes through an ambient LIBRARY_PATH and never adds the Rust toolchain's own lib/. rules_rocq_rust PR #25 fixed this: it downloads a hermetic Rust nightly sysroot and prepends /lib to LIBRARY_PATH/LD_LIBRARY_PATH. Bumping the pin to current main (424e6a6) picks up that fix; no LOOM CI changes are needed. LOOM's own .v proof files were never the problem. Co-Authored-By: Claude Opus 4.7 (1M context) --- MODULE.bazel | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index b409504..272c00c 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -15,11 +15,17 @@ module( # Requires nix to be installed: sh <(curl -L https://nixos.org/nix/install) bazel_dep(name = "rules_rocq_rust", version = "0.1.0") -# Override to fetch from GitHub (not yet in BCR) +# Override to fetch from GitHub (not yet in BCR). +# Pinned at/after rules_rocq_rust PR #25, which makes the rocq-of-rust +# toolchain download a hermetic Rust nightly sysroot and prepend +# /lib to LIBRARY_PATH so the rustc_private link step finds +# libLLVM-*-rust-*. The previous pin (307b65f, Feb 2) predated that fix, +# so the "Rocq Formal Proofs" CI job failed with: +# rust-lld: error: unable to find library -lLLVM-19-rust-1.85.0-nightly git_override( module_name = "rules_rocq_rust", remote = "https://github.com/pulseengine/rules_rocq_rust.git", - commit = "307b65f", + commit = "424e6a6a5f87746ae178114661d6924bdaf805a3", ) # Rocq toolchain extension (creates internal nixpkgs for bzlmod compatibility)