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

Admin Probleme mit Q4os
Thomas Weiss, 30.03.2015 20:27, 6 Antworten
Hallo Leute, ich habe zwei Fragen zu Q4os. Die Installation auf meinem Dell Latitude D600 verl...
eeepc 1005HA externer sound Ausgang geht nicht
Dieter Drewanz, 18.03.2015 15:00, 1 Antworten
Hallo LC, nach dem Update () funktioniert unter KDE der externe Soundausgang an der Klinkenbuc...
AceCad DigiMemo A 402
Dr. Ulrich Andree, 15.03.2015 17:38, 2 Antworten
Moin zusammen, ich habe mir den elektronischen Notizblock "AceCad DigiMemo A 402" zugelegt und m...
Start-Job behindert Bootvorgang, Suse 13.2, KDE,
Wimpy *, 20.02.2015 10:32, 4 Antworten
Beim Bootvorgang ist ein Timeout von 1 Min 30 Sec. weil eine Partition sdb1 gesucht und nicht gef...
Konfiguration RAID 1 mit 2 SSDs: Performance?
Markus Mertens, 16.02.2015 10:02, 6 Antworten
Hallo! Ich möchte bei einer Workstation (2x Xeon E5-2687Wv3, 256GB RAM) 2 SATA-SSDs (512GB) al...