GCC 12.1 已经发布,知道它的消息和它的 35 周年纪念日

GNU GCC徽标

推出 新版本的编译器 GCC (GNU 编译器集合) 12.1 已经发布 与 GCC 的所有主要版本一样,此版本将带来许多添加、改进、错误修复和新功能,此外,本月(23 月 35 日),该项目将庆祝第一个版本形成 XNUMX 周年。

GCC 12 已经是 Fedora 36 的系统编译器,而且 GCC 12 也将在 Red Hat Enterprise Linux 上的 Red Hat Developer Toolset(版本 7)或 Red Hat GCC Toolset(版本 8 和 9)中可用。

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

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

此版本不再支持 STABS 调试格式和
引入了对 CTF 调试格式的支持 [1]。 C 和 C++
随着对功能的扩展支持,界面继续发展
在即将推出的 C2X 和 C++23 标准以及 C++ 标准库中
改进了对 C++20 和 C++23 的实验部分的支持。
Fortran 接口现在完全符合 TS 29113,可与 C 进行互操作。

GCC 12.1 有什么新功能?

在这个新版本中 多项提议已落实,例如对于语言 添加了 C 和 C++ 内置函数__builtin_dynamic_object_size 确定对象的大小,兼容Clang的类似功能。

添加 支持 C 和 C++ 语言的“不可用”属性 (例如,您可以标记使用时会导致错误的函数),以及添加对 C 和 C++ 语言的“#elifdef”和“#elifndef”预处理指令的支持。

还指出, “-Wbidi-chars”标志在 UTF-8 字符被滥用时发出警告,更改双向文本显示顺序,以及“-Warray-compare”标志以在尝试比较两个引用数组的操作数时发出警告。

此外,我OpenMP 5.0 和 5.1 标准的实施 (开放式多处理)继续定义 API 和方法,用于在具有共享内存和矢量化单元 (SIMD) 的多核和混合 (CPU + GPU / DSP) 系统上应用并行编程方法。

还有 改进了 OpenACC 2.6 并行编程规范的实现, 定义在 GPU 和专用处理器(如 NVIDIA PTX)上卸载操作的方法;并将对英特尔 AVX512-FP16 扩展指令和 _Float16 类型的支持添加到 x86 代码生成后端。

Fortran 前端完全支持 TS 29113 规范,该规范描述了确保 Fortran 和 C 代码之间可移植性的可能性。

已弃用对 1980 年代创建的“STABS”调试信息存储格式的支持。

添加了对先前添加到 Clang 中的 __builtin_shufflevector(vec1, vec2, index1, index2, ...) 扩展的支持,它提供了一个调用来执行常见的向量 shuffle 和 shuffle 操作。

使用“-O2”优化级别时,默认启用矢量化(启用 -ftree-vectorize 和 -fvect-cost-model=very-cheap 模式)。 “非常便宜”的模型只有在向量代码可以完全替代可向量化的标量代码时才允许向量化。

添加了“-ftrivial-auto-var-init”模式 在堆栈上启用显式变量初始化以跟踪问题并阻止与使用未初始化变量相关的漏洞。

添加了 编译器内置的 C 函数的实现 (Intrinsics) 用于在内存中进行原子加载和数据存储,基于使用扩展 ARM 指令 (ls64)。 添加了对使用 ARM mopoption 扩展加速 memcpy、memmove 和 memset 函数的支持。

添加 一种新的验证模式“-fsanitize=shadow-call-stack”(ShadowCallStack), 目前仅适用于 AArch64 架构,并且在使用“-fixed-r18”选项编译代码时有效。 该模式可防止在堆栈缓冲区溢出时重写函数的返回地址。 保护的本质是在将控制权转移给函数之后将返回地址保存在单独的“影子”堆栈中,并在退出函数之前检索该地址。

数据来源: https://gcc.gnu.org/pipermail


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。