Compiler-Update

GCC erreicht Version 4.8.0

GCC erreicht Version 4.8.0

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

MS LifeCam HD-5000 an Debian
Kay Michael, 13.04.2016 22:55, 0 Antworten
Hallo, ich versuche die oben erwähnte Cam an einem Thin Client mit Debian zu betreiben. Linux...
Import von Evolution nach KMail erzeugt nur leere Ordner
Klaus-Christian Falkner, 06.04.2016 12:57, 2 Antworten
Hallo, da ich vor einiger Zeit von Ubuntu auf Kubuntu umgestiegen bin, würde ich gerne meine E...
Sophos lässt sich nicht unter Lubuntu installieren
Chrstina Turm, 30.03.2016 20:56, 3 Antworten
Hi Leute, habe mir vor paar Tagen auf ein Notebook, das ohne Linux ausgedient hätte, Linux dr...
Novell Client auf Raspbian
Chris Baum, 16.03.2016 15:13, 3 Antworten
Hallo Community, ich hätte eine Frage, und zwar geht es um folgendes: Ich möchte eine Datei...
Pantheon konfigurieren (eOS)
John Smith, 16.03.2016 13:50, 0 Antworten
Hallo ins Forum, ich bin neu in der Linuxwelt und fühle mich bereits sehr wohl. Mein neues Sys...