ci: fix Rocq Formal Proofs — bump rules_rocq_rust to hermetic toolchain#139
Open
avrabe wants to merge 1 commit into
Open
ci: fix Rocq Formal Proofs — bump rules_rocq_rust to hermetic toolchain#139avrabe wants to merge 1 commit into
avrabe wants to merge 1 commit into
Conversation
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 <rust-sysroot>/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 <sysroot>/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) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The Rocq Formal Proofs CI job (
bazel build //proofs/...) has been failing — pre-existing breakage, identical onmain. It is not a problem with LOOM's.vproof files.The failure happens inside the
rocq_of_rust_sourceBazel repository rule (fromrules_rocq_rust), while it builds therocq-of-rust-rustcbinary from source:rocq-of-rustis arustcdriver, so it dynamically linkslibrustc_driver→libLLVM.librustc_driveris passed to the linker by absolute path, butlibLLVMis passed as-lLLVM-19-rust-1.85.0-nightlyand must be resolved via linker search paths. That.solives in<rust-sysroot>/lib, which was never placed onLIBRARY_PATH.Root cause
LOOM pinned
rules_rocq_rustat307b65f(Feb 2). That revision's repository rule only passes through an ambientLIBRARY_PATHand never adds the Rust toolchain's ownlib/directory. LOOM's CI does not exportLIBRARY_PATH, so the link step cannot findlibLLVM.rules_rocq_rustPR #25 fixed this: the repository rule now downloads a hermetic Rust nightly sysroot and prepends<sysroot>/libtoLIBRARY_PATH/LD_LIBRARY_PATHitself. LOOM's pin simply predated that fix.Fix
Bump the
git_overridepin307b65f→424e6a6(currentrules_rocq_rustmain). No LOOM CI changes are needed — the hermetic toolchain is self-contained.Rocq versions are unaffected:
rules_rocq_rustmainis still Rocq 9.0 (the 9.1 upgrade is an unmerged draft), matchingrocq.toolchain(version = "9.0")here.Verification
CI on this PR will exercise the Rocq Formal Proofs job. The
rocq-of-rusttoolchain build is confirmed working onrules_rocq_rust's own greenmainCI, wherelibLLVM-19-rust-1.85.0-nightly.sois present in<sysroot>/lib.🤖 Generated with Claude Code