LLVM lld が開発した Mold 1.1 リンカーのリリース

Mold リンカーのリリースが公開されました。これは、Linux システム上の GNU リンカーのより高速で透過的な代替品として使用できます。 このプロジェクトは、LLVM lld リンカーの作成者によって開発されました。 Mold の主な特徴は、オブジェクト ファイルのリンク速度が非常に高速であることです。これは、GNU gold リンカーや LLVM lld リンカーよりも顕著に優れています (Mold でのリンクは、単に cp ユーティリティを使用してファイルをコピーする場合の半分の速度で実行されます)。 コードは C++ (C++20) で書かれており、AGPLv3 ライセンスに基づいて配布されます。

収録曲:

  • リンク段階での最適化 (LTO、リンク時間最適化) のサポートが追加されました。 LTO の最適化は、ビルド プロセスに関与するすべてのファイルの状態を考慮する点で異なりますが、従来の最適化モードは各ファイルを個別に最適化し、他のファイルで定義された関数を呼び出す条件を考慮しません。 以前は、GCC または LLVM 中間コード (IR) ファイルが見つかると、対応する ld.bfd または ld.lld リンカーが呼び出されていましたが、現在では、Mold は IR ファイルを独立して処理し、GNU ld および GNU でも使用されるリンカー プラグイン API を使用します。ゴールドリンカー。 LTO を有効にすると、ほとんどの時間がリンクではなくコードの最適化の実行に費やされるため、LTO は他のリンカーよりもわずかに高速になります。
  • ホストおよびターゲット プラットフォームで RISC-V (RV64) アーキテクチャのサポートが追加されました。
  • 「--emit-relocs」オプションを追加して、リンク後の段階で最適化を適用するために、入力ファイルから出力ファイルへの再配置セクションのコピーを有効にしました。
  • 仮想アドレス空間内のアドレスを固定する前にセクションの順序をランダム化する「--shuffle-sections」オプションを追加しました。
  • 入力ファイル間の依存関係に関する情報を CSV 形式で出力するオプション「--print-dependency」および「--print-dependency=full」を追加しました。これは、たとえば、特定のオブジェクト ファイルをリンクするときに接続の理由を分析するために使用できます。または、ファイル間の依存関係の縮小作業を実行するとき。
  • 「--warn-once」および「--warn-textrel」オプションが追加されました。
  • libxxhash への依存関係を削除しました。

出所: オープンネット.ru

コメントを追加します