Login
Newsletter
Werbung

Di, 11. März 2008, 16:19

Software::Entwicklung

GCC 4.3.0 erschienen

Fast zehn Monate nach der Version 4.2.0 der GNU Compiler Collection haben die Entwickler die Version 4.3.0 freigegeben.

Auch GCC 4.3 bringt wieder eine große Zahl von Änderungen und Neuerungen mit sich, einige davon inkompatibel zur Vorversion. So wurden zwei Kommandozeilen-Optionen entfernt. »-fforce-mem« hatte nach den Beobachtungen der Entwickler keinen Effekt und »-msvr3-shlib« wurde nicht mehr benötigt. Die »fastcall«-Option für x86 übergibt keine Aggregat-Argumente mehr in Registern. Eine Reihe anderer veralteter Features wurde entfernt, andere wurden als obsolet markiert und werden in der nächsten Version verschwinden, sofern sie niemand wiederbelebt. Die Bedeutung der Option -Wconversion wurde geändert. Die Hilfe-Option --help wurde erweitert, so dass man auch Hilfe zu spezifischen Themen erhalten kann, beispielsweise mit --help=warnings.

GCC 4.3 bringt Verbesserungen am Optimierer, so können dank der Einbindung der Bibliothek MPFR Aufrufe von Funktionen mit konstanten Argumenten durch ihr mathematisch exaktes Ergebnis ersetzt werden. Ein Vorwärts-Propagations-Lauf ersetzt mehrere frühere langsamere Durchläufe, was zu höherer Geschwindigkeit bei der Optimierung führen soll. Weitere Maßnahmen tragen zu schnellerer Compilierung bei teilweise reduziertem Speicherbedarf bei.

Daneben erhielt der Compiler auch einige neue Kommandozeilen-Optionen, die zumeist spezifisch für die jeweilige Sprache sind. Die größte Änderung dürfte dabei die noch experimentelle Unterstützung für den kommenden C++-Standard C++0x sein. Der FORTRAN-Compiler kann nun einen größeren Teil von FORTRAN 2003 behandeln. Der Java-Compiler verwendet nun den Eclipse Java Compiler zum Parsen von Java-Code und soll damit alle Features von Java 1.5 (Java 5) unterstützen.

Auch bei der Prozessor-Unterstützung gab es Verbesserungen, beispielsweise die Optimierung für Intel Core 2-Prozessoren und AMD Geode. Dies umfasst auch die prozessor- und größenabhängige Optimierung von Block-Operationen wie memcpy und memset. Ferner können SSSE3-, SSE4.1- und SSE4.2-Instruktionen generiert werden.

Eine augenscheinlich kleine Änderung kann bedeutende Auswirkungen auf Programme haben, die Inline-Assembler-Code für x86-Prozessoren verwenden. GCC folgt in der neuen Version dem aktuellen i386- und x86-64 ABI-Standard, der besagt, dass vor String-Operationen keine CLD-Instruktion nötig sein soll. Allgemeiner wird gefordert, dass das damit beeinflusste Direction-Flag am Anfang einer Funktion 0 sein muss. Dies führt zu Fehlern, wenn das Flag innerhalb einer Funktion geändert und nicht zurückgesetzt wird. Da auch der Linux-Kernel davon betroffen ist, sollte man Kernel bis einschließlich Version 2.6.24 nicht mit GCC 4.3 compilieren.

Eine Liste aller Änderungen findet man im Changelog von GCC 4.3. Der Quellcode von GCC 4.3 kann von zahlreichen Mirror-Servern von GNU heruntergeladen werden.

Werbung
Kommentare (Insgesamt: 50 || Alle anzeigen )
Re[10]: C++0x (Erik, So, 16. März 2008)
Re[9]: C++0x (Blubber, Sa, 15. März 2008)
Kompatibilität (kiwi, Do, 13. März 2008)
Re[8]: C++0x (Erik, Do, 13. März 2008)
Re[8]: C++0x (Erik, Do, 13. März 2008)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung