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


11

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


私はそれを知りません。ほとんどのLinuxディストリビューションはGCCを使用していると思います。これは、共通のライセンスを持つソフトウェアをサポートし、GNUコードを処理するために特別に構築されたソフトウェアです。Clangは現在、同様の理由でBSDコミュニティに採用されています。(この手続きは、政治的および技術的な問題を大幅に簡略化したものです)
Chris S


3
@ジェームズ質問への回答を編集しないでください。以下に実際の回答を投稿して、承認済みとしてマークできます。また、SFに登録する場合は、ここで質問の所有権を自動的に取得する必要があります
Michael Mrozek

回答:


8

Debianの状況

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

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

このようなバグは通常、何か問題が発生していることを示すものであり、通常は重大度が高いランクが付けられ、「リリースクリティカル」なバグのステータスが与えられます。

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

最近、けれども、シルベスタレデューおよび他のいくつかのDebian開発者がいる指導 学生の置換できるように、2012年のGoogleのSummer of Codeでの両方のクランとでGCCをlibstdc++することによって(C ++用GCCのサポートライブラリ)libc++(クラン/ LLVMの対応)。

Debianパッケージのコレクション全体のコンパイル結果が公開され、LWNによってさらなるレポートが文書化されたサイトがあり、GCCからDebianビルドプロセスを分離するためのプログラムが正常に終了しました

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

新人

このアップデート(2016-08-16)の時点で、clangとllvmでコンパイルされた従来のLinuxディストリビューションの新しいバージョンであるOpenMandriva Lx 3.0が現在、最終リリースにあります。そのノートによると、それが打ち鳴らすとLLVMと、だけでなく、「定期的に」高い最適化レベルだけではなく、可能な限り、コンパイルされたしても、リンク時の最適化(LTO)

LTO

質問とこの回答の主な主題はllvm / clangですが、公平を期すために、GCCはLTOLTOに関するより多くの背景も備えていることに注意してください。

理論的には、LTOは、新しい打ち鳴らす/ LLVMとGCCに見られるように、持っている潜在的な高速化だけでなく、結果のバイナリを作るだけでなく、持つのテキスト・セクションのための小さなメモリ要件をプログラムのを(とLinuxカーネルは、1つの潜在的benefiterですLTOの)。

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


@AleksandrDubinsky、ありがとうございましたが、SEで一般的にやりたいことをやっています。純粋なほこりのようなにおいがする質問/回答を見つけてイライラします(もちろん、問題が一時的でない場合はいつでも)。
rbrito 2016年

5

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


バグレポートの最後には、Bryce LelbackによるLLVM Linuxプロジェクトにリンクするエントリが含まれています。ブライスは2010年10月のディスカッションスレッドを開始した人と同じ人物です。Clangは、動作するLinuxカーネル(SMP、ネットワーキング、X、セルフホストを使用してRL5にブートします)を構築します。lll-projectには注目します。

@James承諾について言及してからもう1つ注意:ここで使用したものと同じOpenID でSFに登録すると、ここで回答を承諾できるはずです
Michael Mrozek

2

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


エンドユーザーのバイナリはDebianアーカイブの一部ではありませんか?
tshepang 2011

1
はい、それらはgccでビルドされています。エンドユーザーのバイナリとは別に、ソースパッケージは複数の継続的統合プロセスの一部として再構築され、その一部は代替のコンパイラー/リンカー/ libcツールチェーンを使用します。
jmtd 2011

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.