Login
Login-Name Passwort


 
Newsletter
Werbung

Sa, 23. März 2013, 10:35

Software::Entwicklung

GCC 4.8.0 freigegeben

Fast genau ein Jahr nach GCC 4.7.0 haben die Entwickler nun Version 4.8.0 der freien Compiler-Suite veröffentlicht, die den Sprachstandard C++11/C11 stärker unterstützt und intern auf C++ setzt.

gnu.org

Neue GCC-Versionen erscheinen einmal im Jahr - an dieses Schema halten sich die Entwickler seit GCC 3.0 im Jahr 2001, lediglich GCC 3.2 verspätete sich um einige Monate. So wurde jetzt, fast auf den Tag genau ein Jahr nach GCC 4.7.0, die Version 4.8.0 fertiggestellt. Gegenüber GCC 4.7 bringt die neue Suite zahlreiche Verbesserungen und eine einschneidende Änderung. GCC 4.8 wurde intern in einigen Teilen auf C++ portiert. Deshalb ist jetzt zum Compilieren von GCC ein C++-Compiler nötig, der C++ 2003 beherrscht. Dies kann eine ältere Version von GCC oder ein Compiler eines anderen Herstellers sein. Zuvor war zum Bauen von GCC lediglich ein C-Compiler nötig.

GCC 4.8 verwendet DWARF4 statt DWARF2 als Format der Debug-Information, wo das DWARF-Format verwendet wird. Die neue Optimierungsstufe -Og ermöglicht Debugging, wobei gleichzeitig einige einfache Optimierungen vorgenommen werden. Damit werden bei relativ schneller Compilierzeit gute Ausführungszeiten der Programme erreicht. Große Funktionen sollen nun deutlich schneller compiliert werden. Der AddressSanitizer und der ThreadSanitizer ermöglichen die Instrumentierung des Codes, um Speicherprobleme (die häufig zu Sicherheitslücken führen) und Thread-Probleme zu erkennen. Weitere Verbesserungen wurden an der Optimierung vorgenommen und einige veraltete Optionen entfernt.

Das Schlüsselwort thread_local von C++11 wird jetzt unterstützt. Außerdem wurden die Attribut-Syntax und die alignas()-Syntax von C++11 implementiert. Im Fortran-Compiler wurde die Version von Moduldateien erhöht, vorhandene Moduldateien müssen neu compiliert werden. Eine Reihe weiterer Verbesserungen und neuer Optionen kam hinzu. Die Programmiersprache Go wird teilweise schon in der kommenden Version 1.1 unterstützt, die entsprechende Bibliothek ist jedoch noch nicht vollständig.

Eine aggressivere Analyse bei der Ermittlung der Obergrenze, wie oft eine Schleife im Code durchlaufen wird, kann bei einigen Programmen dazu führen, dass sie nicht mehr funktionieren. Diese Programme sind nicht konform zur C/C++-Spezifikation und nutzen ein unspezifiziertes Verhalten. Als Workaround steht die Option -Wno-aggressive-loop-optimizations zur Verfügung. Eine Fehlerkorrektur auf der ARM-Architektur machte eine Änderung des ABIs nötig, so dass neu generierter Code inkompatibel mit Code sein kann, der mit älteren GCC-Versionen generiert wurde.

Eine Reihe neuer Prozessoren wird nun unterstützt, darunter die 64-Bit-ARM-Architektur und der ARM-Prozessor PJ4 von Marvell. Die Code-Optimierung für Cortex A7 und A15 wurde verbessert. Die AArch32-Erweiterung von ARMv8 wird unterstützt. Dagegen wurde die Unterstützung für die veralteten ARM-Varianten FPA und Maverick entfernt.

Bei x86 kamen Instruktionen für neue Intel-Prozessoren hinzu. Es ist nun möglich, mehrere Versionen von Funktionen für spezifische Prozessoren zu schreiben. Spezifische Optimierungen sind jetzt für die AMD-Familien mit Steamroller- oder Jaguar-Kern möglich. Verbesserungen gab es auch bei AVR, MIPS, PowerPC, S/390, SH und anderen. Eine Liste aller Änderungen kann man im Changelog des Compilers finden. Der Quellcode von GCC 4.8.0 kann von zahlreichen Spiegel-Servern des GNU-Projektes heruntergeladen werden.

Werbung
Kommentare (Insgesamt: 15 || Alle anzeigen || Kommentieren )
Re[2]: Schleifen-Analyse (Sie haben vergessen, Ihren Nam, Mo, 25. März 2013)
Re[5]: Schöne Sache! (SublimeLinter, Mo, 25. März 2013)
Re[6]: Schöne Sache! (Euer MC, Mo, 25. März 2013)
Re[6]: Schöne Sache! (Euer MC, Mo, 25. März 2013)
Re[2]: Schleifen-Analyse (caco3, Sa, 23. März 2013)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung