Mold Linker 3.0.0 Released, Now Fully Rewritten in Rust
Mold linker 3.0.0 ships as the first Rust-rewritten release, improving GNU ld compatibility, safety, and build tooling via Cargo.
Mold 3.0.0 marks the first release of the high-speed linker since its complete rewrite from C++ to Rust, with 2.42.1 standing as the final C++ version. The goal of the 3.x series is to close remaining compatibility gaps with GNU ld—particularly around linker script support—and to position mold as a viable default linker for Linux distributions.
The new release is designed as a drop-in replacement for 2.42.1: it accepts the same command-line options, supports the same target architectures, and produces identical output aside from listed bug fixes, with performance on par with the previous version. Compatibility was validated by running the full test suite across all supported targets, comparing output against a broad range of real-world workloads, and successfully building the entire Gentoo package set with no regressions found.
The Rust rewrite also improves robustness against malformed input files—where the C++ version could read out-of-bounds memory and crash with a segfault, mold now performs bounds-checked reads and panics cleanly instead. The build system has moved from CMake to Cargo, requiring Rust 1.95+ and a C compiler, and the project has dropped its oneTBB dependency. The release also ships a long list of bug fixes and compatibility improvements, including architecture-specific corrections for AArch64, ARM32, RISC-V, LoongArch, PPC32/64, SPARC64, SH4, and m68k, alongside fixes to ICF, --gc-sections, version scripts, and deterministic output handling.
This synthesis was produced from its source by AI; there is no human editor or manual review step. How we work