GCC erreicht Version 4.8.0

GCC erreicht Version 4.8.0

Compiler-Update

Tim Schürmann
25.03.2013
Die neue Version der Gnu Compiler Collection bringt unter anderem einen von Google spendierten Address- und Thread-Sanitizer mit, kennt weitere Teile des C++11-Standards und ist jetzt in C++ geschrieben.

Die Entwickler haben die GCC zumindest in einigen Teilen in der Programmiersprache C++ implementiert. Wer die GCC selbst übersetzt, muss folglich ab sofort einen C++-Compiler bereithalten, der mit C++ 2003 umgehen kann. Details liefert die Seite C++ Conversion im GCC-Wiki.

Der neue Adress-Sanitizer spürt Speicherfehler auf, darunter Heap-, Stack- und globale Buffer-Overflows. Unter Linux arbeitet er allerdings nur auf den Architekturen IA-32, x86-64, x32, PowerPC und PowerPC64. Der Thread-Sanitizer soll wiederum auf x86-64-Systemen die gefürchteten Race-Conditions in Threads aufdecken.
GCC ermittelt jetzt mit einem wesentlich aggressiveren Verfahren, wie häufig Schleifen maximal durchlaufen werden. Bei einigen Programmen, wie dem Benchmark SPEC CPU 2006 464.h264ref, führt das jedoch zu Fehlern. In solchen Fällen können Programmierer die aggressive Analyse per „-fno-aggressive-loop-optimizations“ abschalten.

Bei Debug-Informationen im DWARF-Format kommt jetzt der Dwarf4-Standard zum Einsatz. Dieses Format unterstützten GDB 7.5, Valgrind 3.8.0 und elfutils 0.154 von Haus aus, zum alten Dwarf3 oder Dwarf2 schalten „-gdwarf-2“ respektive „-gdwarf-3“. Die neue Optimierungsstufe „-Og“ führt nur kleinere Optimierungen durch. Die Programme sollen damit insbesondere beim Debugging eine bessere Leistung zeigen, während sich der Compiler weiterhin recht schnell durch den Code fräst. Über den Parameter „-ftree-partial-pre“ lässt sich die Partial Redundancy Elimination (kurz PRE) steuern, die redundante Ausdrücke beseitigt. Die Optimierungsstufe „-O3“ aktiviert das jetzt aggressiver zu Werke gehende PRE automatisch.

Der C++-Compiler unterstützt weitere Teile des C++11-Standards. Dazu zählt das Schlüsselwort „thread_local“, die Attribut-Syntax und vererbte Konstruktoren. Die GCC Version 4.8.0 generiert jetzt auch Code für 64-Bit-ARM-Prozessoren (AArch64) Cortex-A53 und Cortex-A57 sowie die Aarch32-Erweiterung ARMv8. Die Entwickler haben zudem die Code-Erzeugung für Cortex-A7 und A15 weiter optimiert. Bei den x86-Prozessoren kennt die GCC jetzt die Befehle neuerer Intel-Prozessoren und bietet spezielle Optimierungen für AMDs Steamroller- oder Jaguar-Prozessoren.

Sämtliche Änderungen finden sich im langen Changelog.

Ähnliche Artikel

Kommentare

Aktuelle Fragen

EasyBCD/NeoGrub
Wolfgang Conrad, 17.12.2017 11:40, 0 Antworten
Hallo zusammen, benutze unter Windows 7 den EasyBCD bzw. NEOgrub, um LinuxMint aus einer ISO Dat...
Huawei
Pit Hampelmann, 13.12.2017 11:35, 2 Antworten
Welches Smartphone ist für euch momentan das beste? Sehe ja die Huawei gerade ganz weit vorne. Bi...
Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 2 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...