FreeBSD Daily Topics

2009年9月30日LLVM Clang FreeBSD対応状況 - 次期システムコンパイラ

heads-up

LLVM Clang Support for FreeBSD

current - Roman Divacky氏がcurrent mlにおいてFreeBSDシステムをLLVM Clangでビルドするプロジェクトの状況を伝えています。紹介されている状況は次のとおりです。

  • i386(カーネル起動、システムは若干のハックを加えることで動作)
  • amd64(カーネルはコンパイルできるが起動しない。システムには若干のハックが必要)
  • ppc(不明なRTLDバグでブロークン状態)

春先はLLVM Clangでビルドされたamd64カーネルは起動まで確認できていました。起動できなくなったということはリグレッションが発生していることになります。春から夏にかけて、amd64において正しくmcmodel=kernelオプションがサポートされた他、libgccの置き換えを進めるためにcompiler-rtが導入されるなどの変更が実施されました。これら影響でamd64におけるカーネルの起動ができなくなったとみられます。

clang@freebsdチームでは、試験を実施してくれるテストユーザが足りないとしており、興味があるユーザはirc.oftc.netの#freebsd-clangチャンネルに参加したりメーリングリストに参加するなどして、試験に参加してほしいと呼びかけています。特にamd64で試験を実施してくれるユーザと、arm/mips/sparcなどのアーキテクチャで試験してくれるユーザが募集されています。

最新のFreeBSDに導入されているGCCのバージョンは4.2.1です。GCCの最新版のバージョンはもっと高いのですが、4.2.2からはGPLv3に変更されたため、FreeBSDとしてはベースシステムには取り込まない方向で作業が進められています。他のツールに関してもGPLv3のソフトウェアはベースシステムにはマージしない方針です。

GCCに代わるコンパイラとしては、BSDライセンスでかつ高性能、開発も対応も活発で今後の展開が期待できるLLVM Clangが次期FreeBSDのベースとして最も有力なものとされています。複数のアーキテクチャに対応し、すべてのソースコードが正しくコンパイラして動作するようになるには多くの作業が必要になりますが、FreeBSD 9や10を目処に具体的に作業が進められる見通しです。

おすすめ記事

記事・ニュース一覧