Answers:
对于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构建。
这可能出于必要。直到最近,获得BSD许可的C编译器可能很少或与奇偶校验功能接近gcc
。
来自FreeBSD项目目标:
源树中属于GNU通用公共许可证(GPL)或库通用公共许可证(LGPL)的代码附带了更多的字符串,尽管至少是在强制访问方面,而不是通常的相反。由于在GPL软件的商业使用中可能会演变出更多的复杂性,因此,当这样做是合理的选择时,我们更喜欢以更宽松的BSD版权提交的软件。