为什么FreeBSD使用GPL许可的GCC?


11

为什么FreeBSD使用GCC作为其默认编译器?

我的印象是FreeBSD理念的核心支柱是使用任何GNU软件,尤其是使用GPL代码。

然而,既是GNU又是GPL的GCC与FreeBSD捆绑在一起。

为什么?

Answers:


13

对于32位和64位Intel x86系统,FreeBSD 10 将使用BSD许可的Clang编译器而不是GCC。阻止FreeBSD发行的所有CPU平台全面转换的唯一原因是开发人员的时间和兴趣。

至于FreeBSD 9(即将提出该问题时即将发布),有人在谈论将Clang设置为默认编译器,但由于存在很多问题,他们决定将Clang与GCC一起交付,而将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端口树中,并且某些版本的GCC可能会保留很多年。有很多软件包,其中很多都在FreeBSD Ports中,这些软件包仅使用GCC构建。


1
编译器不仅必须至少接近性能,而且还必须支持语言扩展。开发人员经常出于某些原因(或不使用任何原因;-))使用它们
johannes 2012年

8

这可能出于必要。直到最近,获得BSD许可的C编译器可能很少或与奇偶校验功能接近gcc

来自FreeBSD项目目标

源树中属于GNU通用公共许可证(GPL)或库通用公共许可证(LGPL)的代码附带了更多的字符串,尽管至少是在强制访问方面,而不是通常的相反。由于在GPL软件的商业使用中可能会演变出更多的复杂性,因此,当这样做是合理的选择时,我们更喜欢以更宽松的BSD版权提交的软件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.