20

LLVM プロジェクト のリンカlldは現在、毎週新しい機能が追加されて開発されています。その開発者は、それlldが よりも速いと約束していますld。と比較してどのように競合しgoldますか?

lld は のドロップイン代替品ldですか? ゴールドには、ジャンプするためのいくつかのフープがあります

4

2 に答える 2

12

LLD 開発者の 1 人、Rui Ueyamaが 2016 年の LLD の進歩を振り返ります。

  • 「今では、[LLD] が既存の GNU リンカ [..] に代わる本格的な (そして私の意見では、より優れた) ものになると確信しています。」
  • 「LLD は、ほとんどの x86-64 ユーザーランド プログラムをリンクできるようになりました。」
  • 「FreeBSD プロジェクトと私たちは、LLD をオペレーティング システムのシステム デフォルト リンカにしようとしていますが、カーネルやブートローダーなどのいくつかのトリッキーなプログラムを除いて、リンカはほとんど問題なく動作します。」もう達成!
  • 「LLD は x86、x86-64、x32、AArch64、AMDGPU、ARM、PPC64、および MIPS32/64 をサポートしますが、完全性にはばらつきがあります。」
  • 「CloudABI や Fuchsia など、システム リンカとして LLD を使用しているシステムはすでにいくつかあります。Chromium と Clang/LLVM 自体には、LLD を使用してそれらをビルドするためのビルド オプションがあります。」

そして、ボーナスとして:

  • 「LLD はより高速になりました [..] 今年の初めに、LLD は 1.5 GB の clang (デバッグ ビルド) 実行可能ファイルを生成するのに約 16 秒かかりました。現在は、シングル コアで約 14.5 秒、20 コアで 8.5 秒かかります。ld .gold にはそれぞれ約 25 秒と 20 秒かかります。[..] リンク時間が長すぎるという問題がある場合は、LLD を試すことをお勧めします。」

2017 年春の更新開発者の 1 人によると、「LLD/ELF は現在、少なくとも x86-64 (およびおそらく AArch64 と MIPS) で本番環境で使用する準備ができています。」http://lists.llvm.org/pipermail/llvmを参照してください。 -dev/2017-March/111083.html LLD の使用方法に関する簡単な説明も含まれています。

于 2016-12-19T11:53:21.867 に答える
2

プログラム自体は互換性の目標を主張しており、簡単なテストでは問題なく動作するようです

この設計目標は、Web サイトで主張されています

LLD は、GNU と同じコマンド ライン引数とリンカー スクリプトを受け入れる GNU リンカーのドロップイン代替品です。

たとえば、Ubuntu 20.04では次のようにインストールします。

sudo apt install lld
lld --version

言います:

LLD 10.0.0 (compatible with GNU linkers)

そして、次のように C の hello world をコンパイルできます-fuse-ld=lld

gcc -fuse-ld=lld -ggdb3 -O0 -std=c11 -Wall -Wextra -pedantic -o hello.out hello.c

パフォーマンス ベンチマーク vs ゴールド

すぐに結果を文書化します: ld をゴールドに置き換える - 経験はありますか?

于 2020-09-24T12:08:54.537 に答える