Mold, the high-speed software linker, has reached version 3.0 with its codebase rewritten from C++ to Rust. The project's maintainers describe the release as a drop-in replacement for version 2.42.1, the final C++ edition, with the same command-line options, target architectures and expected output apart from documented bug fixes.
The rewrite begins the 3.x line rather than introducing a new user-facing operating model. Maintainers said linking performance remains comparable to 2.42.1. They tested supported targets, compared output across workloads and option combinations, and built the full set of Gentoo packages without finding a regression. Those are project-reported validation results, not an independent performance audit, but they signal that compatibility was a central release criterion.
Rust also changes how Mold handles unsafe reads from damaged input files. In the C++ implementation, malformed data could trigger an out-of-bounds memory read and a segmentation fault. Rust's bounds checks instead stop execution with a panic at the invalid access. That does not make every possible linker bug disappear, but it replaces one class of unchecked memory access with a defined runtime check.
The build process has changed substantially. Mold now uses Cargo instead of CMake and requires Rust 1.95 or later plus a C compiler. Developers building from source use `cargo build --release`, followed by the project's installation script. Previous CMake options are gone, and target selection is handled through Cargo features. The oneTBB dependency has also been removed.
Version 3.0 includes a wide range of correctness fixes beyond the rewrite. The release repairs crashes involving static executables and version scripts, avoids corrupted output when an output file is also supplied as an input, and corrects several interactions among section garbage collection, symbol handling and relocations. It also addresses nondeterministic output in multiple modes and fixes architecture-specific problems affecting AArch64, ARM, RISC-V and LoongArch.
The project says its longer-term goal for Mold 3.x is to close remaining compatibility gaps with GNU ld, especially linker-script support, and make Mold a stronger candidate to become the default linker in Linux distributions. That ambition depends on more than raw speed: distribution adoption requires predictable output, broad architecture coverage, reliable diagnostics and compatibility with existing build systems.
For current users, the release is positioned as a migration with limited command-line disruption but meaningful tooling changes for packagers and source builders. Teams considering the update will need a sufficiently recent Rust toolchain and should run their own link and runtime test suites. The rewrite provides a new implementation foundation, while the release notes make clear that practical compatibility work and defect correction remain continuing priorities for the 3.x series.



