有没有编译过的Linux发行版铿锵/llvm?截至 2010 年末,内核似乎正在运行。如果不是,是否更有可能是技术或许可问题?
答案1
Debian 的情况
作为对这个问题的迟到回应,@jmtd 所说的正是 Debian 档案中定期发生的事情。
使用较新的工具链(编译器、链接器等)重新编译软件包,并且当重新编译失败时,针对未能编译的软件包的错误将通过 FTBFS(“无法从源代码构建”)的指示进行归档。
此类错误通常表明发生了不良情况,并且通常被列为高严重性,并被赋予“发布关键”错误状态,这意味着在这些错误未解决的情况下无法发布新版本。
尤其,卢卡斯·努斯鲍姆作为某种质量评估的手段,我们一直在网格中重新编译 Debian 项目的整个档案。
不过最近,西尔维斯特·勒德鲁和其他一些 Debian 开发者指导的 学生在 Google 2012 年夏季代码中允许替换两个都GCC 由 Clang 提供,libstdc++
(GCC 对 C++ 的支持库)由libc++
(Clang/LLVM 的对应库)提供。
有一个地点其中发布了整个 Debian 软件包集合的编译结果,并进一步报告被记录在案低水温网络将 Debian 构建过程与 GCC 解耦的程序是圆满结束。
因此,我们可能很快就会看到使用 clang/llvm 编译的 Debian 风格,具体取决于这些成功结果可以获得多少支持。
新人
截至本次更新(2016-08-16),有一个使用 clang 和 llvm 编译的传统 Linux 发行版的新版本,OpenMandriva Lx 3.0,现已发布最终版本。根据其注释,它不仅使用 clang 和 llvm 进行编译,而且还使用“常规”高优化级别进行编译和还与链接时间优化 (LTO)。
低温氧化
虽然问题和这个答案的主要主题是 llvm/clang,但公平地说,应该注意GCC 还具有 LTO(更多的LTO的背景)。
理论上,LTO,如较新的 clang/llvm 和 GCC 中所示,具有潜在的不仅使生成的二进制文件更快,而且还具有文本部分的内存需求较小的程序(以及Linux 内核是 LTO 的潜在受益者之一)。
我还没有读到 OpenMandriva Lx 3.0 在所有程序中使用了多少 LTO,但我很高兴它使用 clang/llvm + LTO,我很高兴看到人们进行多个独立基准测试,比较和对比“常规”基于 GCC 的、 OpenMandriva Lx 3.0 的非 LTO 优化发行版。
答案2
还没有。根据当前打开的错误报告似乎连内核本身都无法编译。
答案3
虽然最终用户二进制文件不是使用 clang/llvm 构建的,但大多数 Debian 归档文件都是由那些想要暴露可移植性错误的人使用 clang/llvm (以及 binutils-gold 和其他零碎的东西)构建(和重建)的。软件套件(以及编译器本身)。
答案4
最近,OpenSuse - Tumbleweed 滚动发布将在 gcc9 上为其构建设置 LTO。 http://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inter-procedural.html