FreeBSDがGPLライセンスのGCCを使用するのはなぜですか?


11

FreeBSDがデフォルトのコンパイラとしてGCCを使用するのはなぜですか?

私は、FreeBSD哲学の核心はGNUソフトウェア、特にGPLコードを使用しないことであるという印象を受けています。

それでも、GNUとGPLの両方であるGCCは、FreeBSDにバンドルされています。

どうして?

回答:


13

FreeBSD 10 、32ビットおよび64ビットのIntel x86システムでGCCの代わりにBSDライセンスのClangコンパイラを使用します。FreeBSDがリリースされているすべてのCPUプラットフォームでホールセールスイッチを妨げる唯一のことは、開発者の時間と関心です。

この質問が最初に提起さればかりの FreeBSD 9 に関しては、Clangをデフォルトコンパイラにすることについて話し合いましたが、GCCと一緒にClangを出荷し、GCCをデフォルトのままにすることに決めたという十分な問題がありました。このリリース用。

FreeBSDが何年も前に非GPLコンパイラに移行しようとせず、独自のコンパイラを作成しなかった理由については、理由は簡単です。それは難しいことです。

学部生のCSの学生なら誰でもコンパイラを書くことができます-コースの要件でさえあるかもしれません-しかし、良いコンパイラを書くのは難しいです。CやC ++のような言語を使用する必要がある場合、優れたコンパイラを作成することは依然として困難です。新しいコンパイラーが少なくともGCCのパフォーマンスと機能にアプローチする必要があるという合理的な決定を下すと、タスクはさらに難しくなります。

そのため、GCC 4.2は依然としてFreeBSD 9のデフォルトコンパイラです。

ところで、GCC 3.4、4.4、4.6、4.7、および4.8はFreeBSD 9のPortsツリーにあり、GCCの一部のバージョンは今後もPortsに残る可能性があります。GCCでのみビルドできるソフトウェアパッケージが多数あります(その多くはFreeBSD Portsにあります)。


1
コンパイラは、少なくともパフォーマンスに近いだけでなく、言語拡張機能もサポートする必要があります。開発者はしばしば何らかの理由でそれらを使用します(また
はなし;

8

おそらく必要ではありません。最近まで、BSDライセンスのCコンパイラはおそらくほとんどなかったか、機能の同等性に近づいていませんでしたgcc

FreeBSDプロジェクトの目標から:

GNU General Public License(GPL)またはLibrary General Public License(LGPL)に該当するソースツリーのコードには、少なくとも通常の反対ではなく、少なくとも強制アクセスの側面に、より多くの文字列が添付されています。ただし、GPLソフトウェアの商用利用で進化する可能性がある追加の複雑さのために、合理的なオプションである場合、より緩和されたBSD著作権の下で提出されたソフトウェアを優先します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.