mold 3.0.0 é um novo lançamento principal do linker de alta velocidade, reescrito de C++ para Rust. Esta é a primeira versão Rust, sendo 2.42.1 o último lançamento em C++. O objetivo do mold 3.x é fechar as lacunas de compatibilidade com o GNU ld, particularmente no suporte a scripts de linker, e pavimentar o caminho para que o mold seja adotado como o linker padrão nas distribuições Linux.
mold 3.0 é um substituto direto para 2.42.1, aceitando as mesmas opções de linha de comando e suportando os mesmos alvos. O desempenho de vinculação permanece equivalente. A mudança para Rust torna o mold mais seguro com arquivos de entrada corrompidos; a versão em C++ podia ler memória fora dos limites, enquanto o mold 3.0 verifica os limites e entra em pânico.
As mudanças de construção incluem o uso de Cargo em vez de CMake, exigindo Rust 1.95 ou posterior. Execute `cargo build --release` e `./install-mold.sh`. O mold não depende mais de TBB e vincula estaticamente mimalloc 3.5.3. O conjunto de testes é executado com `cargo test`.
As correções de bugs incluem corrigir falhas com scripts de versão, `--gc-sections` não remove mais funções de `--init` e `--fini`, e corrigir saída não determinística em várias áreas. Erros para realocações relativas a PC contra símbolos em bibliotecas compartilhadas agora são tratados corretamente.
Fonte: Hacker News · Resumido por HeadlinesBriefing