Zum Hauptinhalt Zur Navigation

Entwicklungsumgebungen: GCC 4.8.0 wechselt zu C++

Der Code der GNU Compiler Collection (GCC) basiert ab der soeben erschienen Version 4.8.0 auf C++. Von Google stammen ein neuer Adress- und Thread-Sanitizer.
/ Jörg Thoma
105 Kommentare News folgen (öffnet im neuen Fenster)
GCC 4.8 ist erschienen. (Bild: GCC)
GCC 4.8 ist erschienen. Bild: GCC

Wer GCC 4.8.0 selbst kompilieren will, braucht künftig einen C++-Compiler, der C++ 2003 beherrscht. Als Grund nennen die Entwickler unter anderem, dass das C++-Subset C ebenso effizient sei, wie C selbst. Außerdem soll der Umstieg auf C++ die Entwicklung von Schnittstellen und die Codepflege erleichtern. Immerhin, so die Entwickler, sei C++ eine standardisierte, bekannte und populäre Programmiersprache.

Von Google kommt der Adress-Sanitizer(öffnet im neuen Fenster) , mit dem sich schnell Speicherfehler aufspüren lassen sollen, etwa Heap-, Stack- oder globale Bufferoverflows und Use-after-free-Bugs. Er funktioniert unter GNU/Linux auf Intel-basierten 32- und 64-Bit-Systemen, PowerPCs, ebenfalls in der 32- und 64-Bit-Varainte, und auf 32-Bit- und 64-Bit-Darwin-Systemen. Ebenfalls von Google stammt der neue Thread-Sanitizer(öffnet im neuen Fenster) für x86-64-Systeme mit Linux, der Wettlaufsituation verhindern soll.

Besseres Debuggen

Statt der Optimierungsstufe(öffnet im neuen Fenster) -O0 können Entwickler künftig in der Testphase die neue Optimierungsstufe -Og wählen, mit der eine bessere Leistung beim Debugging erzielt werden kann. Das Standardformat für die Ausgabe von Debugging-Informationen basiert künftig auf Dwarf4(öffnet im neuen Fenster) .

Die Beseitigung partieller Redundanzen erledigt die neue Option -ftree-partial-pre deutlich aggressiver als zuvor. Wer die Optimierungsstufe -O3 wählt, schaltet die Option automatisch ein. Weitere Verbesserungen erhielt der Link-Time-Optimizer. Außerdem gibt es einen neuen Symbol-Table, der auf Callgraph und Varpool basiert und ein neues API bietet.

Mehr C++11

Während die Unterstützung für C nur wenig verbessert wurde, wurde diejenige für C++ um eine Reihe neuer Funktionen aus C++11 erweitert, darunter das Keyword thread_local oder vererbte Konstruktoren. In der Runtime-Bibliothek Libstdc++ wurde die zunächst experimentelle Unterstützung für C++11 eingebaut.

Mit GCC 4.8.0 lassen sich künftig Anwendungen für ARMs 64-Bit-Architektur (AArch64) kompilieren, die auf den Prozessoren Cortex-A53 und Cortex-A57 laufen. Auf den 32-Bit-Varianten unterstützt GCC 4.8.0 ARMv8.

Sämtliche Änderungen haben die Entwickler auf ihrer Webseite zusammengefasst(öffnet im neuen Fenster) . GCC 4.8 ist ebenfalls dort als Download erhältlich(öffnet im neuen Fenster) .


Relevante Themen