BT

LLVMの新しいリンカLLDがLLVM 4で導入へ

| 作者: Sergio De Simone フォローする 12 人のフォロワー , 翻訳者 h_yoshida フォローする 1 人のフォロワー 投稿日 2017年3月9日. 推定読書時間: 2 分 |

原文(投稿日:2017/02/21)へのリンク

GCCのldを大幅に性能改善したLDDが、近くLLVM 4 rc1に組み込まれ、デフォルトで使用されるようになる。この新しいリンカは、稼働中のFreeBSD/amd64ベースのシステムではすでに使用されているが、LLVMでの利用はまだ試験段階であり、問題が発生すればrc2では保留される可能性もある。

LLDを導入することのメリットとその成熟度は、先日リリースされたFreeBSDプロジェクトの四半期ステータスレポートに最もよく示されている。

LLDの開発者たちは、この四半期で大きな進歩を達成しました。LLDとFreeBSD双方にコミットされた変更により、私たちは大きなマイルストンに到達しました – LLDを使用して、FreeBSD/amd64ベースのシステム全体(カーネルとユーザ領域)のリンクが可能になったのです。

さらにBSDプロジェクトが寄贈した多数のパッチにより、BSDポートの約95%、パッケージ数にして25,000以上が、LLDを使ってリンク可能になった。

LLDの開発は2015年5月、ELF(Unix)およびCOFF(WIndows)システムリンカのパフォーマンス向上を目的として開始された。開発者たちによると、LLDは、ldよりも高速なリンカとしてGoogleが開発したGNU goldリンカに比較しても、全体で1.2~2倍高速だという。実際にLDDは、特に大規模なコードベースにおいて、ldgoldよりもはるかに高速だ。一方で、小さなプログラムや、あるいは共有ライブラリを多用するプログラムにおいては、メリットはあまり期待できない。goldと同じく、LLDは、異なるバイナリファイルフォーマットを抽象化するBFDを使用しない。

注目に値するのは、約165,000行のgoldに比較してLDDが、COFFリンカで7,000行、ELFリンカで18,000行と、非常にコンパクトであることだ。さらに、プログラムの中に静的ライブラリとして組み込んで、lld::elf::linkエントリポイントをコールすることもできる。

LLVM 4公開前にLLDを体験したいのであれば、ソースからビルドすることが可能だ。

  $svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
  $cd llvm/tools
  $svn co http://llvm.org/svn/llvm-project/lld/trunk lld
  $cd ../../..
  $mkdir build
  $cd build
  $cmake -G “Ninja” -DCMAKE_BUILD_TYPE=”Release” -DCMAKE_INSTALL_PREFIX=”your_preferred_location” ../llvm
  $ninja lld
  $ninja install

LDDのコンパイルが完了すれば、それを使用する最も確実な方法は、ldld.lldにシンボリックリンクすることだ。この方法ならばGCCでも動作する。あるいはLLVM -fuse-ld=lldオプションを使用すれば、シンボリックリンクの必要はない。

 
 

この記事を評価

関連性
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT