FreeBSDがGCCをデフォルトのコンパイラとして使用するのはなぜですか?
私の考えでは、FreeBSD哲学の中心柱は次のとおりです。いいえGNUソフトウェア、特にGPLコードを使用してください。
ただし、GNUでGPLであるGCCは、FreeBSDにバンドルされています。
なぜ?
答え1
フリーBSD 10BSD ライセンス Clang コンパイラを使用します。32ビットおよび64ビットIntel x86システム用のGCCの代わり。 FreeBSDがリリースするすべてのCPUプラットフォームで大規模な変換を妨げる唯一のことは、開発者の時間と関心です。
FreeBSD 9の場合 - はい。まもなくリリースされる予定この質問が最初に提起されたときスピーチClangをネイティブコンパイラにすることに関して、GCCと共にClangをリリースし、GCCをこのバージョンのネイティブコンパイラとして維持することに決めたのに十分な問題がありました。
FreeBSDが数年前にGPL以外のコンパイラに切り替えようとしなかったか、独自のコンパイラを作成しようとしなかったのは簡単です。難しいです。
コンピュータサイエンスの学部生であれば、誰でもコンパイラを書くことができます。これは必須プロセスですが、コンパイラの作成は必須です。いいねコンパイラは難しいです。 CやC ++のような言語のための良いコンパイラを書くのははるかに難しいです。新しいコンパイラに最低限必要な合理的な決定を下すと、作業がより困難になります。方法GCCの性能と機能には数十年の開発価値があります。
したがって、GCC 4.2はFreeBSD 9のデフォルトコンパイラのままです。
ちなみに、GCC 3.4、4.4、4.6、4.7、および4.8はすべてFreeBSD 9ポートツリーにあり、一部のGCCバージョンは今後数年間ポートに残ることがあります。 GCCでのみ構築された多くのパッケージ(その多くはFreeBSDポートにあります)があります。
答え2
これはおそらく必要性によるものである可能性が高いです。最近までBSDライセンスを受けたCコンパイラはほとんどなかったかgcc
。
~からFreeBSDプロジェクトの目標:
GNU General Public License(GPL)またはLibrary General Public License(LGPL)に対応するソースツリーのコードには、より多くの文字列が付いていますが、少なくとも一般的な反対ではないアクセス試行の点ではそうです。ただし、GPLソフトウェアを商業的に使用すると追加の複雑さが発生する可能性があるため、選択が合理的である場合は、より許容できるBSDの著作権に従って提出されたソフトウェアが優先されます。