HeadlinesBriefing HeadlinesBriefing.com

Mold Linker 3.0.0 – Переписан на Rust

Hacker News •
×

mold 3.0.0 — это новый крупный выпуск высокоскоростного компоновщика, переписанный с C++ на Rust. Это первая версия на Rust, при этом 2.42.1 является последним выпуском на C++. Цель mold 3.x — устранить пробелы в совместимости с GNU ld, особенно в поддержке скриптов компоновщика, и проложить путь для принятия mold в качестве компоновщика по умолчанию в дистрибутивах Linux.

mold 3.0 является прямой заменой 2.42.1, принимает те же параметры командной строки и поддерживает те же цели. Производительность компоновки остается на том же уровне. Переход на Rust делает mold более безопасным с поврежденными входными файлами; версия на C++ могла читать память за пределами границ, в то время как mold 3.0 проверяет границы и вместо этого вызывает панику.

Изменения сборки включают использование Cargo вместо CMake, требуется Rust 1.95 или новее. Запустите `cargo build --release` и `./install-mold.sh`. mold больше не зависит от TBB и статически связывает mimalloc 3.5.3. Набор тестов запускается с помощью `cargo test`.

Исправления ошибок включают исправление сбоев со скриптами версий, `--gc-sections` больше не удаляет функции из `--init` и `--fini`, а также исправление недетерминированного вывода в нескольких областях. Ошибки для PC-относительных перемещений относительно символов в общих библиотеках теперь обрабатываются правильно.

Источник: Hacker News · Сводку подготовил HeadlinesBriefing