GCC 12.1 已經發布,知道它的消息和它的 35 週年紀念日

GNU GCC徽標

推出 新版本的編譯器 GCC (GNU 編譯器集合) 12.1 已經發布 與 GCC 的所有主要版本一樣,此版本將帶來許多添加、改進、錯誤修復和新功能,此外,本月(23 月 35 日),該項目將慶祝第一個版本形成 XNUMX 週年。

GCC 12 已經是 Fe​​dora 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. 權利:您可以隨時限制,恢復和刪除您的信息。