Updates

BCacheFS mandates Rust, warns kernel builds need exact rustc versions

Bcachefs is pushing Rust into its future, but its DKMS path now depends on the exact rustc, stdlib, bindgen, and kernel build versions lining up.

Sam Ortega··2 min read
Published
Listen to this article0:00 min
BCacheFS mandates Rust, warns kernel builds need exact rustc versions
Source: X (formerly Twitter

Kent Overstreet’s bcachefs is mandating Rust for new development, but the filesystem is also warning that the deployment bill comes due fast: for most users, Rust modules are not practical unless the installed rustc matches the compiler used to build the kernel. The same announcement says the Rust standard library sources, the bindgen CLI version, and some kernel build artifacts must also line up, turning a code-quality gain into an exacting build-time dependency.

That warning lands in a Linux kernel that still treats Rust as a controlled experiment. Linux merged Rust support in v6.1 to help judge whether Rust was worth the tradeoffs, and the kernel’s own documentation says Rust code there is built with rustc and compiled under no_std, with support limited to core rather than std. Rust’s reference documentation treats ABI as part of the compiled output of a crate, but it does not promise a stable Rust-to-Rust ABI in the way many C toolchains treat binary compatibility, which is why compiler-version matching matters so much once Rust code has to ship outside the build tree.

AI-generated illustration
AI-generated illustration

Bcachefs has been circling this issue for more than a year. In February 2024, it posted RFC patches to add internal Rust bindings and framework support, and Rust-for-Linux maintainer Miguel Ojeda asked whether the filesystem planned to keep its C and Rust implementations in lockstep and how Rust would work if the feature stayed optional. By August 2024, kernel build work had added RUSTC_VERSION support and rebuild handling when the compiler changes, a sign that the toolchain problem had already moved from theory into kbuild plumbing. By early 2026, kernel Rust maintainers were discussing Debian Stable as the floor for minimum supported Rust versions.

The packaging path makes the tension sharper. Linus Torvalds marked bcachefs as externally maintained, and the project has been pushed further toward out-of-tree and DKMS-style distribution. That works cleanly for a conventional C module; it gets messy when the same install depends on an exact rustc, a specific bindgen release, and matching kernel artifacts. Bcachefs also points to extensive CI with ktest and QEMU-based automated testing, but the new Rust requirement means the hard part is no longer just proving the code is sound. It is making sure every machine that installs it can rebuild the same way.

This article was produced by Prism’s automated news system from verified source data, official records, and press releases, then run through automated quality and moderation checks before publishing. The system is built and supervised by the people who set the standards it runs under. Read our full AI policy.

Did this article answer your question?

Discussion

More Rust Programming News