FreeBSD Daily Topics
2010年4月19日 FreeBSD GCCを置き換えるLLVM Clang,広くテスト呼びかけ
src
- ClangBSD - LLVM Clang Call for Test
Roman Divacky氏がメーリングリストにおいてLLVM ClangのFreeBSD統合が一定のレベルに達したとしてコミュニティに広くテストを呼びかけています。LLVM Clangがセルフホストに到達したこと,ClangのC++サポートが向上したこと,i386/amd64のシステムとカーネルのビルドと成功していることなどが背景にあります。
テストはClangBSDのブランチを取得してビルドすることで実施できます。作業の詳しい方法はBuildingFreeBSDWithClang - FreeBSD Wikiにまとまっています。いつ,どのタイミングでメインブランチに取り込まれていくかはまだわかりませんが,そう遠くない先に何らかのアクションがあると見られます。
FreeBSDはGCCをシステムのデフォルトコンパイラに採用しています。最も広く採用されているOSSコンパイラであり,サポートしているアーキテクチャやサポートしているプログラミング言語の広さは多岐に渡ります。実質的にデファクトスタンダードです。
GCC 4.2.1 on FreeBSD/amd64 9-CURRENT
# gcc -v Using built-in specs. Target: amd64-undermydesk-freebsd Configured with: FreeBSD/amd64 system compiler Thread model: posix gcc version 4.2.1 20070719 [FreeBSD] #しかし,FreeBSDのGCCは9-CURRENTでもGCC 4.2.1と古いままです。これはそれ以後のGCCがライセンスをGPLv3に変えたことが大きな理由です。FreeBSDは大型のアプライアンスから小型の組み込みにも採用されるため,ベースシステムのコンパイラとライブラリがGPLv3になることを懸念する声があり,GPLv3を採用した以降のGCCの取り込みを停止しています。
Clang 1.5 (trunk) on FreeBSD/amd64 9-CURRENT
# clang -v clang version 1.5 (trunk) Target: x86_64-portbld-freebsd9.0 Thread model: posix #これに対し代替候補としてもっとも期待されているコンパイラがLLVM Clangです。GCCと互換性が高くLLVM ClangがBSDライセンスであることも大きな理由ですが,GCCと比較してコンパイル時間が高速で利用するメモリが少ないこと,コードの見通しの良さ,進んだソースコードの分析力とわかりやすいエラーメッセージの表示,応用しやすいライブラリベースアーキテクチャを採用していることなどの利点があります。
LLVM開発チームと良い関係が築けていることもあり,ベースシステムへの取り込みが期待されています。GCCのほうがサポートしているアーキテクチャが広く,まだFreeBSDがサポートしているすべてのアーキテクチャに対応しているわけではありませんが,今後最も取り込み実現が期待されるコンパイラです。
FreeBSD Daily Topics
- 2010年4月30日 2010Q1報告(OS移植編):FreeBSD/arm,FreeBSD/mips,FreeBSD/ia64
- 2010年4月28日 ≪注目≫UFS2にジャーナル機能登場,Soft-Updates Journaling
- 2010年4月21日 libgmp4からgmpへアップグレードする方法
- 2010年4月20日 FreeBSD 8.1-RELEASEは7月10日ごろ
- 2010年4月19日 FreeBSD GCCを置き換えるLLVM Clang,広くテスト呼びかけ
- 2010年4月16日 ZFSにスワップ領域を作成する方法
- 2010年4月15日 AsiaBSDCon 2010のUstream.tv配信
- 2010年4月14日 【注意】Ports Collectionに影響範囲の大きいコミット,作業継続中
- 2010年4月13日 GEOM IOスケジューラ登場,用途に適したIOスケジューラで性能向上
- 2010年4月12日 NVIDIA Driver 195.36.15,Ports Collectionに登場

