FreeBSD Daily Topics

2011年10月13日脱GPLとBSDライセンスツールチェーン - カーネル/ユーザランド視点

eurobsdcon

GPL-free BSD toolchains - from kernel/userland view

FreeBSDはもともとGCCやその関連ツールをツールチェーンとして採用してきました。当時は、最も優れた選択肢だったと言えます。そんなFreeBSDですが、ツールチェーンをBSDラインセンスのものへ置き換える取り組みを2006年ごろから開始します。最初はBSDElfToolsの取り組みです。2007年にGCCがGPLv3へ移行するとアップグレードできない問題が発生。同年、LLVM Clangが発表されます。

2010年にLLVM Clangはセルフホストに成功するとともに、FreeBSDへの移植も本格化。カーネル/ワールド含めてブート可能なところまで対応を実施。最近ではlibsupc++/libc++を獲得し、BSDライセンス化を加速させています。

現段階でGPLフリーのBSDツールチェーンを実現する課題は次のものがあります。

  • ELFリンカーの開発
  • デバッガの開発(LLVMのデバッガを移植することになると見られます)
  • より多くのアーキテクチャのサポート
  • 外部ツールチェーンを利用するためのインフラストラクチャの構築

しばらくはGCCとClangの双方によるビルドが必要になると見られます(たとえばこのアーキテクチャはClang、このアーキテクチャはGCC、など⁠⁠。ClangとGCC以外のコンパイラやツールチェーンを使えるようにmakeインフラに仕組みを導入することは、より多くのプラットフォームで動作するためのビルドを提供する仕組みとして価値があります。

ELFリンカーの開発は最大の焦点となります。ワーキンググループの議論に参加した開発者からは、だれが開発するのかは別として、リンカーに欲しい機能がいくつも提案されていました。仮にこれら機能がすべて実装されることになれば、FreeBSD 10はGPLフリーのみならず、アプリケーションの実行、開発、デバッグなどにおいて価値のあるプラットフォームになります。

おすすめ記事

記事・ニュース一覧