是否有使用clang / llvm编译的Linux发行版?


11

是否有使用clang / llvm编译的Linux发行版?截至2010年底,内核似乎仍在工作。如果不是,那更有可能是技术或许可问题?


我什么都不知道。我认为大多数Linux发行版都使用GCC,该软件支持具有通用许可的软件,以及专门为处理GNU代码而构建的软件。由于类似的原因,BSD社区目前正在接受Clang。(此程序大大简化了政治和技术问题)
克里斯·S


3
@James请不要将答案编辑成问题;您可以在下面发布实际答案并将其标记为已接受。另外,如果您在SF上注册,则应自动在此处获得问题的所有权
Michael Mrozek

Answers:


8

Debian的情况

作为对该问题的最新答复,@ 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)

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。


@AleksandrDubinsky,感谢您对我的感谢,但我只是想做自己想在SE中获得的一般东西。闻起来像纯尘一样的问题/答案令人沮丧,(当然,当问题不是暂时的时)。
rbrito

5

还没。根据当前打开的错误报告,似乎内核本身也无法编译。


错误报告的末尾包含一个条目,该条目链接到Bryce Lelback 的LLVM Linux项目。Bryce是发起 2010年10月讨论线程的那个人,Clang构建了一个有效的Linux内核(引导到带有SMP,网络和X,自托管的RL5)。我将密切关注lll项目。

@James自从您提到接受之后,再次提醒您:如果您使用此处使用的相同OpenID 在SF注册,则您应该可以在此处接受答案
Michael Mrozek

2

尽管最终用户二进制文件不是使用clang / llvm构建的,但是大多数Debian档案库是由希望暴露出可移植性错误的人使用clang / llvm(以及binutils-gold和其他零碎的东西)构建的(并重新构建的)。软件套件(以及编译器本身)。


最终用户二进制文件不是Debian归档文件的一部分吗?
tshepang 2011年

1
是的,这些都是使用gcc构建的。源软件包与最终用户二进制文件分开,是作为多个连续集成过程的一部分进行重建的,其中一些过程使用替代的编译器/链接器/ libc工具链。
2011年

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.