FreeBSD Daily Topics

2011年10月31日LLVM Clangデフォルトコンパイラ化 - カーネル/ユーザランド視点

eurobsdcon

LLVM Clang as default compiler - from kernel/world view

FreeBSDのデフォルトコンパイラをLLVM Clangに変更した場合、ライセンス状のメリットが得られるだけでなく、最新のツールチェーンの機能を利用できるようになるというメリットがあります。LLVM Clangの開発は活発であり、そうした開発の恩恵を受けることができます。

amd64とi386に関してはほぼ問題なく移行が完了するとみられます。課題はそれ以外のアーキテクチャです。ARMやPowerPC系は組み込み用途での採用が期待できるのでLLVM Clangのデフォルト化の効果がもっとも期待できるところですが、amd64やi386ほどにはユーザがいないので、なかなか対応作業が進みにくいアーキテクチャでもあります。

すべてのアーキテクチャが一様にClangビルド化するのは難しい面があると見られるため、当面、GCCとClangを切り替えてビルドできる仕組みが提供されることになると見られます。こうしたデュアルでの運用は、FreeBSDのビルドメカニズムを整理する上での効果が期待できます。たとえばGCCとClangでのビルドに対応した状態であれば、Intel C/C++コンパイラに対応することも、pccでのビルドに対応することも、仕組みから言えば難しくはないわけです(ビルドできるかどうか、成果物の性能はどうか、は別として⁠⁠。

CURRENTには最新のClangがマージされ続けていますし、11月末までにリリースされるとみられる9.0-RELEASEにもすでにClangはマージされています(/usr/bin/clang)。i386やamd64であればカーネルおよびユーザランドをClangでビルドして利用できます。使用をはじめるには良いタイミングといえます。

おすすめ記事

記事・ニュース一覧