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

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

zonemu2个月前 (07-28)技术文章24

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 之前的旧解决方法。

相关文章

(一)熟练HTML5+CSS3,每天复习一遍

前言学习网页的概念和分类,了解静态网页和动态网页的不同;了解网页浏览器的工作原理。了解HTML,XHTML,HTML5的概念,制作简单的HTML页面的开发。什么是网页可以在internet上通过网页浏...

简析html5、html的13条区别(html5和html的突出优点)

html5的流行近一两年,在国内主要是移动端和html5游戏的发展,国外也是最近纷纷使用html5,如谷歌,全面的停止flash的广告的投放量,用html5取代之,那么html5较html的区别在哪里...

全屋定制板材怎么选不出错?6 种板材深度对比,3 套方案闭眼选

装修选板材头疼吧?刚装完的柜子变形发霉,说好的环保结果甲醛超标,这种翻车现场见太多了。厨房卫生间千万别用密度板,这玩意儿遇水就膨胀,半年准完蛋。颗粒板性价比确实高,但小厂出的真心不敢用。环保等级至少得...

WordPress 内置的数组处理相关函数大全

我们使用 WordPress 开发的时候,有很大一部分的工作和数组处理有关,WordPress 本身也内置了一些非常方便的数组处理函数,今天给大家罗列一下,也方便自己以后写代码的时候查询。wp_par...

渗透测试基础入门:文件上传漏洞之文件名过滤绕过

昨天安仔跟大家分享了文件上传漏洞中的前端JS绕过,今天继续分享文件名过滤绕过。绕过原理:JS验证代码通过黑名单的方式来判断允许上传文件的类型,这个时候攻击者就可以通过上传黑名单之外的文件类型来绕过验证...

前端基础进阶(十):深入详解函数的柯里化

配图与本文无关柯里化是函数的一个高级应用,想要理解它并不简单。因此我一直在思考应该如何更加表达才能让大家理解起来更加容易。通过上一个章节的学习我们知道,接收函数作为参数的函数,都可以叫做高阶函数。我们...