mold 3.0.0 es un nuevo lanzamiento importante del enlazador de alta velocidad, reescrito de C++ a Rust. Esta es la primera versión en Rust, siendo 2.42.1 la última versión en C++. El objetivo de mold 3.x es cerrar las brechas de compatibilidad con GNU ld, particularmente en el soporte de scripts de enlazador, y allanar el camino para que mold sea adoptado como el enlazador predeterminado en las distribuciones de Linux.
mold 3.0 es un reemplazo directo de 2.42.1, aceptando las mismas opciones de línea de comandos y soportando los mismos objetivos. El rendimiento de enlace se mantiene a la par. El cambio a Rust hace que mold sea más seguro con archivos de entrada corruptos; la versión en C++ podía leer memoria fuera de los límites, mientras que mold 3.0 verifica los límites y entra en pánico en su lugar.
Los cambios de construcción incluyen el uso de Cargo en lugar de CMake, requiriendo Rust 1.95 o posterior. Ejecute `cargo build --release` y `./install-mold.sh`. mold ya no depende de TBB y enlaza estáticamente mimalloc 3.5.3. El conjunto de pruebas se ejecuta con `cargo test`.
Las correcciones de errores incluyen la corrección de fallos con scripts de versión, `--gc-sections` ya no elimina funciones de `--init` y `--fini`, y la corrección de salida no determinista en varias áreas. Los errores para reubicaciones relativas a PC contra símbolos en bibliotecas compartidas ahora se manejan correctamente.
Fuente: Hacker News · Resumido por HeadlinesBriefing