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

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.