当前位置:首页 > 技术文章 > 正文内容

Linux 6.16 现在强制要求最低编译器版本为 GCC 8

Linux x86/x86_64 内核的编译要求最低编译器版本为 GCC 8,而 Linux 6.16 也对所有其他架构都提出了同样的要求。所有 Linux 内核架构的 GCC 8 和 GNU Binutils 2.30 基准现在允许从代码库中删除一些旧的变通方法。

Linus Torvalds 今天合并了这一变更,强制要求编译 Linux 内核所需的 GNU 编译器集合版本至少使用 GCC 8。GCC 8 最低版本取代了之前的 GCC 5 最低版本要求。GNU Binutils 基准版本从 v2.25 升级到 v2.30。LLVM Clang 13 及更新版本仍然是编译 Linux 内核的 GCC 替代方案。

Arnd Bergmann 在Git 合并中阐述了提高 GCC 基准的理由:

需要 gcc-8 和 binutils-2.30

x86 已使用 gcc-8 作为最低版本,这将使所有其他体系结构更改为同一版本。Debian 10 和 Red Hat Enterprise Linux 8 使用 gcc-8,这两个系统仍然受支持,binutils 2.30 是它们对应的最旧版本。Ubuntu Pro 18.04 和 SUSE Linux Enterprise Server 15 都使用 gcc-7 作为系统编译器,但还包含仍然受支持的工具链。

使用新的最低工具链版本,可以放弃许多针对旧版本的解决方法,尤其是在 x86_64 和 arm64 上。重要的是,更新的编译器版本允许删除剩余的五个 gcc 插件中的两个,因为现代编译器版本已经包含对 sancov 和 structleak 特性的支持。

我尝试收集基于新工具链版本可能出现的已知更改,但预计还会进行更多清理。

与此变化合并后,内核中已经删除了 600 多行代码,从而能够消除 GCC8 之前的旧解决方法。

相关文章

2023 年 10 个最佳 Linux 桌面发行版

Linux 操作系统在桌面领域的发展已经不再被忽视,越来越多的用户正在考虑切换到 Linux 上。在 2023 年,我们可以期待更多的 Linux 桌面发行版的推出和发展。这里列举了 10 个最佳的...

Vue2的16种传参通信方式(vue传参数)

前言先直入主题列出有哪些传参方式,下面再通过事例一一讲解。props(父传子)$emit与v-on (子传父)EventBus (兄弟传参).sync与update: (父子双向)v-model (父...

GitLab-合并请求(gitlab合并请求合并者还原图解)

描述合并请求可用于在您对项目进行的其他人员之间交换代码,并轻松与他们讨论更改。合并请求的步骤步骤1-在创建新的合并请求之前,GitLab中应该有一个创建的分支。您可以参考本章来创建分支-步骤2-登录到...

同事git push到主分支上了,技术总监怒了

事情是这样的,同事前几天提交使用git提交代码的时候不小心提交到主分支上了,关键还提交成功了,这可是他自己开发的模块,还没测试的呢。技术总监也知道了,这下他慌乱了。最后还是技术总监给他兜底了。为了防止...

使用GitLab实现CICD(gitlab配置cicd)

GitLab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发:Continuous Integration (CI) 持续集成Continuous Delivery (C...

jenkins+gitlab 实现自动化部署(gitlab触发jenkins)

目录1、安装jdk,要记住安装路径2、安装maven,要记住安装路径3、安装git,要记住安装路径4、安装gitlab5、安装jenkins(centos7)创建安装目录下载通用war包启动和关闭Je...