Login
Newsletter
Werbung

Mo, 28. März 2011, 08:55

Software::Entwicklung

GCC 4.6.0 freigegeben

Ein knappes Jahr nach GCC 4.5.0 haben die GCC-Entwickler nun Version 4.6.0 des freien Compilers mit Unterstützung für Android und die Programmiersprache Go veröffentlicht. Daneben ist die neue Version von zahlreichen Optimierungen geprägt.

GCC-Logo

gnu.org

GCC-Logo

GCC 4.6.0 enthält gegenüber GCC 4.5.0 eine Vielzahl von Änderungen. Der Compiler prüft nun seine Kommandozeilenoptionen strikter, was zu unerwarteten Fehlern führen kann, wenn man bisher inkorrekte Optionen angegeben hat. Die Optionen -b und -V wurden gestrichen, weil sie nicht immer funktionierten; stattdessen sollte man die gewünschte Compilerversion direkt aufrufen.

GCC 4.6.0 kann den generierten Code besser optimieren als seine Vorgänger. Der Scalable Whole Program Optimizer (PDF) ist nun standardmäßig aktiviert. Die Optimierung beim Linken kann auf mehreren Prozessoren parallel ausgeführt werden. Ebenso wird nun immer die Unterstützung für Linker-Plugins aktiviert, wenn erkannt wird, dass der Linker Plugins beherrscht. Dies ist für GNU ld ab 2.21.51 und Gold der Fall. Mit Hilfe des Linker-Plugins werden Informationen gewonnen, mit denen das Programm noch weiter optimiert wird. Die Optimierungen sollen unter anderem bei C++-Programmen zu schnellerem dynamischem Linken und kürzerer Startzeit führen.

Auch die Optimierung über Funktionsgrenzen hinweg wurde weiter verbessert, was ebenfalls der Startzeit von großen C++-Programmen zugute kommt. Die neue Option -Ofast optimiert wie -O3, nimmt darüber hinaus aber Optimierungen vor, die den C-Standard in einzelnen Punkten verletzen können. Wo dies keine Rolle spielt, erhält man damit aber schnelleren Code. Auch GCC selbst wurde optimiert und soll ein klein wenig schneller sein, nach Messungen der Entwickler bis zu 10%.

Das Frontend für die Programmiersprache Ada unterstützt jetzt erste Teile von Ada 2012. Das C-Frontend unterstützt Teile des kommenden C1X-Standards. Weitere Verbesserungen gab es an der Unterstützung für den kommenden C++0x-Standard. Darüber hinaus gab es einige neue Compiler-Optionen und erweiterte Compiler-Warnungen.

Auch im Objective-C- sowie im Fortran-Frontend gab es etliche Verbesserungen, bei letzterem insbesondere bei der Abdeckung von Fortran 2003 und 2008. Es gibt nun einen Datentyp für 128-Bit-Gleitkommazahlen; wo dieser nicht in der Hardware unterstützt wird, ist die Berechnung allerdings um ein bis zwei Größenordnungen langsamer als bei kürzeren Datentypen.

Ein neues Frontend ist der Compiler für die von Google erfundene Sprache Go. Neue unterstützte Zielsysteme sind diverse ARM-Varianten, MicroBlaze und Faraday-Prozessoren. Auf x86-Systemen ist es nun möglich, einen nicht kontinuierlichen Stack zu verwenden. Spezifische Code-Generierung steht für Intel Core 2, Core i3/i5/i7, AMD Bobcat, Loongson 3A (aus der MIPS-Familie), Applied Micro Titan (aus der PowerPC-Familie), zEnterprise z196 (IBM zSeries), LEON (Sparc V8) und einige andere bereit.

GCC unterstützt jetzt auch die C-Bibliothek Bionic unter Android. Die Unterstützung für einige obsolete Systeme wurde dagegen entfernt. Eine Liste aller Änderungen kann man im Changelog des Compilers finden. Der Quellcode von GCC 4.6.0 kann von zahlreichen Spiegel-Servern des GNU-Projektes heruntergeladen werden.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung