mold 3.0.0 est une nouvelle version majeure du lieur haute vitesse, réécrit de C++ vers Rust. C'est la première version Rust, 2.42.1 étant la dernière version C++. L'objectif de mold 3.x est de combler les lacunes de compatibilité avec GNU ld, notamment dans le support des scripts de lieur, et de préparer le terrain pour que mold soit adopté comme lieur par défaut dans les distributions Linux.
mold 3.0 est un remplacement direct de 2.42.1, acceptant les mêmes options de ligne de commande et supportant les mêmes cibles. Les performances de liaison restent comparables. Le passage à Rust rend mold plus sûr avec les fichiers d'entrée corrompus ; la version C++ pouvait lire la mémoire hors limites, tandis que mold 3.0 vérifie les limites et panique à la place.
Les changements de construction incluent l'utilisation de Cargo au lieu de CMake, nécessitant Rust 1.95 ou ultérieur. Exécutez `cargo build --release` et `./install-mold.sh`. mold ne dépend plus de TBB et lie statiquement mimalloc 3.5.3. La suite de tests s'exécute avec `cargo test`.
Les corrections de bogues incluent la correction des plantages avec les scripts de version, `--gc-sections` ne supprime plus les fonctions de `--init` et `--fini`, et la correction des sorties non déterministes dans plusieurs domaines. Les erreurs pour les relocations relatives au PC contre les symboles dans les bibliothèques partagées sont maintenant traitées correctement.
Source: Hacker News · Résumé par HeadlinesBriefing