web-dev-qa-db-ja.com

clang / llvmでコンパイルされたLinuxディストリビューションはありますか?

clang/llvm でコンパイルされたLinuxディストリビューションはありますか? 2010年後半の時点で、カーネルは機能していたようです。そうでない場合は、技術的な問題またはライセンスの問題である可能性が高くなりますか?

8
James Snelling

Debianの状況

この質問への遅い回答として、@ jmtdが言ったことは、Debianアーカイブで定期的に行われていることとまったく同じです。

パッケージは新しいツールチェーン(コンパイラー、リンカーなど)で再コンパイルされます。再コンパイルが失敗すると、コンパイルに失敗したパッケージに対するバグがFTBFS(「ソースからのビルドに失敗しました」)の表示とともに提出されます。

このようなバグは通常、何か問題が発生していることを示すものであり、通常は重大度が高く、「リリースクリティカル」バグのステータスが与えられます。つまり、これらのバグを解決しないと新しいリリースを実行できません。

特に、 Lucas Nussbaum は、品質評価の手段として、Debianプロジェクトのアーカイブ全体をグリッドに再コンパイルしています。

しかし最近、 Sylvestre Ledr と他のいくつかのDebian開発者は mentoredstudents GoogleのSummerof Code of2012での置換を許可しています両方 ClangによるGCCとlibstdc++(C++用のGCCのサポートライブラリ)libc++(Clang/LLVMの対応).

site で、Debianパッケージのコレクション全体のコンパイル結果が公開され、さらに reports[〜#〜] lwn [〜 #〜] そしてDebianビルドプロセスをGCCから切り離すためのプログラムは 正常に終了しました でした。

したがって、これらの成功した結果がどれだけのサポートを得ることができるかに応じて、clang/llvmでコンパイルされたDebianのフレーバーがすぐに表示される可能性があります。

新人

このアップデート(2016-08-16)の時点で、clangとllvmでコンパイルされた従来のLinuxディストリビューションの新しいバージョン OpenMandriva Lx 3. があり、現在最終リリースになっています。そのメモによると、それは可能な限り、clangとllvmだけでなく、「通常の」高い最適化レベルでコンパイルされていますandまた Link Time Optimization(LTO)

LTO

質問とこの回答の主な主題はllvm/clangですが、公平を期すために注意してください GCCもLTOを備えています (詳細 LTOの背景 )。

理論的には、LTOは、新しいclang/llvmおよびGCCで見られるように、結果のバイナリを高速化するだけでなく、-を作成する可能性を備えています。 テキストセクションのメモリ要件が小さい プログラムの(そして LinuxカーネルはLTOの潜在的な利点の1つです )。

OpenMandriva Lx 3.0がすべてのプログラムでLTOをどれだけ使用しているかは読んでいませんが、clang/llvm + LTOを使用していることに興奮しています。また、「通常の」GCCベースのGCCベースを比較対照する複数の独立したベンチマークを実行している人々を見てみたいと思います。 OpenMandriva Lx3.0へのLTO最適化されていないディストリビューション。

8
rbrito

未だに。 この現在開いているバグレポート によると、カーネル自体でさえコンパイルに失敗しているようです。

エンドユーザーのバイナリはclang/llvmでビルドされていませんが、Debianアーカイブのほとんどはclang/llvm(およびbinutils-goldやその他の断片)で移植性のバグを公開したい人々によってビルド(および再構築)されています。ソフトウェアスイート(およびコンパイラ自体)。

2
jmtd