News › linux
By The Linux Camp News, October 5, 2026
Mold 3.0 targets compatibility with 2.42.1, but source builds move from CMake to Cargo. Bounds checks change corrupted-input failures, while a smaller virtual-address reservation helps constrained builds.
Mold 3.0.0 was released on October 5, 2026, delivering the high-speed linker's first Rust implementation. Maintainers identify 2.42.1 as the final C++ release. The intended replacement preserves existing linking behavior apart from bug fixes; building the linker itself requires a different workflow. 1 2 4 3
Existing invocations and target architectures are meant to remain supported. Maintainers report performance parity with 2.42.1, not a speedup, and no regressions after testing every supported target, comparing real workloads and option combinations, and building all Gentoo packages. These are project-reported results, not independent measurements. 2
The safety change concerns how corrupted inputs fail. The C++ implementation could read beyond valid memory bounds and crash with a segmentation fault. Rust bounds checks detect those invalid accesses and stop Mold with a panic instead. That is a checked failure at the offending access, not a promise that malformed files can successfully link. 2
Source-build recipes need Cargo rather than CMake, Rust 1.95 or later, and a C compiler. CMake options are removed. Packagers should review target selection: Cargo features replace MOLD_TARGETS, and maintainers still instruct distributions to build all targets. 2 4
Library installation paths also need attention. When using a directory other than $PREFIX/lib, such as /usr/lib64, set MOLD_LIBDIR during both building and installation. This lets mold -run locate mold-wrapper.so. The oneTBB dependency has been removed. 2
For resource-constrained builds, Mold no longer reserves 8 GiB of virtual address space at startup, allowing it to work under ulimit -v. The distinction matters: this removes an address-space reservation, not a claimed 8 GiB of physical RAM consumption. 2
Compatibility with GNU ld remains unfinished work, particularly linker-script support. The release notes describe closing those gaps and enabling adoption as distributions' default linker as goals for 3.x, not outcomes established by 3.0. 2