veilletech.fr
6 oct. Feed du jour
#05 RUST Article

mold 3.0 : le linker passe de C++ à Rust

Un linker réécrit, et rien ne doit changer. C'est tout le défi.

mold 3.0 est la première version du linker réécrite en Rust. Elle se veut un remplacement direct de la 2.42.1 (mêmes options, mêmes cibles, même sortie hors corrections), vérifié en recompilant tous les paquets Gentoo. Ceux qui compilent mold eux-mêmes changent d'outillage : Cargo remplace CMake, et Rust 1.95 est requis.

2 min de lectureintermédiairevidéo 1:17
Partager
Sommaire4 sections
  1. Ce qui se passe
  2. Pour qui l'utilise
  3. Pour qui le compile
  4. À retenir

Ce qui se passe

mold, le linker rapide maintenu sur rui314/mold, sort en 3.0.0 : la première version réécrite intégralement de C++ en Rust. La 2.42.1 restera la dernière version C++. Objectif de la série 3.x : combler les derniers écarts avec GNU ld, notamment sur les scripts de linker, pour que mold puisse devenir le linker par défaut des distributions Linux.

Pour qui l'utilise

La 3.0 se présente comme un remplacement direct de la 2.42.1 : mêmes options en ligne de commande, mêmes architectures, même sortie à l'exception des corrections, performances équivalentes. Vérifications annoncées : suite de tests sur chaque cible, comparaison des sorties sur des charges réelles et diverses combinaisons d'options, recompilation de tous les paquets Gentoo. Aucune régression trouvée.

Sur un fichier objet corrompu, la version C++ pouvait lire hors des limites et finir en erreur de segmentation. En Rust, ces lectures sont vérifiées : mold s'arrête sur une panique, à l'accès fautif.

Corrections qui peuvent changer un build existant :

Pour qui le compile

Terminal
cargo build --release
./install-mold.sh          # accepte PREFIX et DESTDIR

Source : mold 3.0.0, notes de version sur GitHub, remontées par Lobste.rs le 5 octobre 2026.