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 との互換性のギャップを埋め、Linux ディストリビューションでデフォルトのリンカーとして採用される道を開くことです。

mold 3.0 は 2.42.1 のドロップイン代替品であり、同じコマンドラインオプションを受け入れ、同じターゲットをサポートします。リンクパフォーマンスは同等です。Rust への移行により、mold は破損した入力ファイルに対してより安全になります。C++ バージョンはメモリの範囲外を読み取る可能性がありましたが、mold 3.0 は範囲チェックを行い、代わりにパニックします。

ビルドの変更には、CMake の代わりに Cargo を使用することが含まれ、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