GCC 12.1 wurde bereits veröffentlicht und das sind seine Neuigkeiten

Nach einem Jahr der Entwicklung GCC 12.1 Build-Paket veröffentlicht, die erste bedeutende Veröffentlichung auf dem neuen GCC 12.x-Zweig.

Unter dem neuen Versionsnummerierungsschema wurde Version 12.0 während der Entwicklung verwendet, und kurz vor der Veröffentlichung von GCC 12.1 wurde bereits der GCC 13.0-Zweig gegabelt, aus dem die nächste Hauptversion von GCC 13.1 gebildet wird.

GCC 12.1 Neue Hauptfunktionen

In dieser neuen Version, die vorgestellt wird, wird hervorgehoben, dass se Unterstützung für das CTF-Debugging-Format hinzugefügt, die eine kompakte Speicherung von Informationen über C-Typen, Beziehungen zwischen Funktionen und Debugging-Symbolen bietet. Wenn es in ELF-Objekte eingebettet ist, ermöglicht das Format die Verwendung von EFL-Symboltabellen, um Datenduplizierung zu vermeiden.

Darüber hinaus wird darauf hingewiesen die Arbeit geht weiter, um die Unterstützung für zukünftige C2X- und C++23-Standards für C und C++ zu erweitern und das auch die Kompatibilität mit die experimentellen Teile der Standards C++20 und C++23 wurden verbessert in der C++-Standardbibliothek.

Für die Architektur x86, fügte zusätzlichen Schutz gegen Prozessorschwachstellen hinzu, die durch spekulative Ausführung verursacht wurden von Anweisungen nach unbedingten Sprungoperationen. Das Problem ergibt sich aus der präventiven Verarbeitung von Befehlen unmittelbar nach dem Sprungbefehl im Speicher (SLS, Straight Line Speculation). Die Option „-mharden-sls“ wird vorgeschlagen, um den Schutz zu aktivieren.

Es wird auch hervorgehoben, dass Definition für die Verwendung nicht initialisierter Variablen hinzugefügt zum experimentellen statischen Analysator. Anfängliche Unterstützung für das Analysieren von Assemblercode bei Inline-Einfügungen hinzugefügt. Verbesserte Speicherverfolgung. Umgeschriebener Code zur Handhabung von Änderungsausdrücken.

Wurden hinzugefügt 30 neue Aufrufe an libgccjit, eine gemeinsam genutzte Bibliothek zum Einbetten eines Codegenerators in andere Prozesse und zum Verwenden für die Kompilierung von JIT-Bytecode zu nativem Code.

Andererseits wird hervorgehoben, dass die Unterstützung für den CO-RE-Mechanismus (Einmal kompilieren – überall ausführen) an das Backend, um BPF-Bytecode zu generieren, der ermöglicht es, den Code der eBPF-Programme für den Kernel zu kompilieren Linux nur einmal und verwenden Sie einen speziellen universellen Lader, der das geladene Programm an die aktuellen Kernel- und BTF-Typen (BPF-Typformat) anpasst. CO-RE löst das Problem mit der Portabilität von kompilierten eBPF-Programmen, die bisher nur in der Kernel-Version verwendet werden konnten, für die sie gebaut wurden, da die Position von Elementen in den Datenstrukturen von Version zu Version variiert.

wurde hinzugefügt RISC-V-Backend-Unterstützung für neue Architekturerweiterungen von Befehlssätzen zba, zbb, zbc und zbs sowie ISA-Erweiterungen für vektorielle und skalare kryptografische Operationen. Unterstützung für die Spezifikation RISC-V ISA 20191213 wird standardmäßig bereitgestellt. Flag -mtune=thead-c906 hinzugefügt, um Optimierungen für T-HEAD c906 Kernel zu aktivieren.

Hinzugefügt Unterstützung für den Typ __int128_t/integer(kind=16) an das Codegenerierungs-Backend für AMD GPUs basierend auf der GCN-Mikroarchitektur. Es können bis zu 40 Workgroups pro Compute Unit (CU) und bis zu 16 Instruction Fronts (Wavefront, ein Satz von Threads, die parallel von der SIMD Engine ausgeführt werden) pro Gruppe verwendet werden. Bisher war nur eine Befehlsflanke pro CU erlaubt.

Die Indikatoren „-march“, „-mptx“ und „-march-map“ wurden dem NVPTX-Backend hinzugefügt, das für die Codegenerierung mit der Befehlssatzarchitektur NVIDIA PTX (Parallel Thread Execution) entwickelt wurde. Unterstützung für PTX ISA sm_53, sm_70, sm_75 und sm_80 implementiert. Die Standardarchitektur ist sm_30.

Darüber hinaus wird hervorgehoben, dass Es wurde ein Problem behoben, bei dem der Compiler eine nicht qualifizierte Suche durchführte eines abhängigen Operatorausdrucks zum Zeitpunkt der Vorlagendefinition und nicht zum Zeitpunkt der Instanziierung. Diese Lösung entspricht dem bestehenden Verhalten für abhängige Aufrufausdrücke.

Es ist erwähnenswert, dass das Projekt am 23. Mai sein 35-jähriges Bestehen seit der Erstellung der ersten GCC-Version feiert. Endlich wenn Sie mehr darüber wissen möchtenkönnen Sie die Details überprüfen im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.