是否有使用clang / llvm编译的Linux发行版?截至2010年底,内核似乎仍在工作。如果不是,那更有可能是技术或许可问题?
是否有使用clang / llvm编译的Linux发行版?截至2010年底,内核似乎仍在工作。如果不是,那更有可能是技术或许可问题?
Answers:
作为对该问题的最新答复,@ jmtd所说的正是Debian档案文件中定期发生的事情。
使用较新的工具链(编译器,链接器等)重新编译软件包,并且当重新编译失败时,将针对未编译的软件包的错误进行归档,并显示FTBFS(“无法从源代码构建”)。
这些错误通常表示发生了某些不良情况,并且通常以较高的严重性进行排名,并且具有“严重发布”错误的状态,这意味着无法解决这些错误就无法完成新发行。
特别是,卢卡斯·努斯鲍姆(Lucas Nussbaum)一直在网格中重新编译Debian项目的整个档案,以作为一些质量评估的一种手段。
不过,最近西尔威斯特赖德律和其他一些Debian开发人员已经辅导 的学生在2012年的代码谷歌的夏天,让替代两个海湾合作委员会由锵和libstdc++
通过(GCC的支持C ++库)libc++
(铛/ LLVM的对应)。
在一个站点上,发布了整个Debian软件包的汇编结果,LWN记录了进一步的报告,并且成功完成了将Debian构建过程与GCC分离的程序。
因此,我们很快就会看到使用clang / llvm编译的Debian风格,具体取决于这些成功结果可以获得多少支持。
截至此更新(2016-08-16),有一个使用clang和llvm编译的传统Linux发行版的新版本OpenMandriva Lx 3.0,现在已最终发行。据其笔记,它被编译,尽可能地,不仅铛和LLVM,也与“普通”高优化级别,并还与链接时间优化(LTO) 。
虽然这个问题和这个答案的主要主题是llvm / clang,公平地说,应该指出的是,GCC还具有LTO(更多关于LTO的背景知识)。
从理论上讲,如在较新的clang / llvm和GCC中所见,LTO 不仅有可能使生成的二进制文件更快,而且对程序的文本部分具有较小的内存要求(Linux内核是一个潜在的受益者)。的LTO)。
我还没看过OpenMandriva Lx 3.0在所有程序中使用LTO的程度,但是我很高兴它使用clang / llvm + LTO,我很乐意看到人们在做多个独立的基准测试,以比较和对比基于“常规” GCC的基准,非LTO优化的发行版到OpenMandriva Lx 3.0。
还没。根据当前打开的错误报告,似乎内核本身也无法编译。
尽管最终用户二进制文件不是使用clang / llvm构建的,但是大多数Debian档案库是由希望暴露出可移植性错误的人使用clang / llvm(以及binutils-gold和其他零碎的东西)构建的(并重新构建的)。软件套件(以及编译器本身)。
最近,OpenSuse-Tumbleweed滚动版本将在其gcc9上设置LTO。 http://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inter-procedural.html