据GCC官方消息,2022 年 5 月 6 日,GCC 12.1发布。以下是消息的详细内容。


GCC 开发人员很自豪地宣布另一个主要的 GCC 版本 12.1。

今年我们庆祝了第一个 GCC 测试版发布 35 周年,本月我们将庆祝 GCC 1.0 发布 35 周年!

此版本不支持 STABS 调试格式和引入了对 CTF 调试格式的支持 [1]。

C 和 C++随着对功能的扩展支持,前端继续发展在即将发布的 C2X 和 C++23 标准以及 C++ 标准库中改进了对实验性 C++20 和 C++23 部分的支持。

Fortran 前端现在完全支持 TS 29113 以实现与 C 的互操作性。


GCC 现在了解 clangs __builtin_shufflevector 扩展制作更容易共享通用矢量代码。从 GCC 12 开始在 -O2 优化级别启用矢量化,使用非常便宜的成本模型,它对代码大小的扩展施加了额外的限制。


在安全方面,GCC 现在可以隐式初始化堆栈变量使用 -ftrivial-auto-var-init 帮助追踪和缓解未初始化的堆栈变量缺陷。C 和 C++ 前端现在支持__builtin_dynamic_object_size 与 clang 扩展兼容。

x86 后端获得了针对直线推测的缓解措施与-mharden-sls。实验性静态分析器未初始化变量使用检测和许多其他改进。


x86 后端通过 _Float16 获得对 AVX512-FP16 的支持。BPF 后端现在支持 CO-RE,RISC-V 后端获得支持对于许多新的 ISA 扩展。


一些使用旧 GCC 版本成功编译的代码可能需要源更改,请参阅http://gcc.gnu.org/gcc-12/porting_to.html 


有关 GCC 12.1 更改的更多信息,请阅读:https://gcc.gnu.org/gcc-12/changes.html


此版本可从此处列出的 WWW 和 FTP 服务器获得:

 https://sourceware.org/pub/gcc/releases/gcc-12.1.0/ 

 https://gcc.gnu.org/mirrors.html


该版本位于 gcc-12.1.0/ 子目录中。


如果您在使用 GCC 12.1 时遇到困难,请不要直接联系我。请访问http://gcc.gnu.org了解有关获得帮助。


推动 GCC 等领先的自由软件项目是不可能没有许多贡献者的支持。

不仅是它的开发人员,尤其是它的常规测试人员和用户为其高质量做出贡献。个人名单太大了,无法单独感谢!

----

[1] 见https://ctfstd.org/