Maßnahme gegen Spectre-v2-Angriff: Die neue Version von Clang bringt mit Retpolines eine wichtige Maßnahme gegen “Branch Target Injection” mit. Außerdem unterstützt der Compiler nun standardmäßig C++14.
Die neue Version 6.0 der LLVM-Compiler-Infrastruktur ist erschienen. Über die Änderungen berichten die Projektverantwortlichen ausführlich auf ihrer Webseite. Die wichtigste Neuerung ist die Einführung einer Retpoline-Kompilierungsoption. Die soll Kernelangriffe durch die CPU-Sicherheitslücke Spectre verhindern – genau genommen die “Branch Target Injection”, auch als Spectre v2 bezeichnet. Googles Paul Turner erklärt in einem ausführlichen FAQ-Beitrag, wie Retpoline funktioniert.
Bessere Diagnose
Dank der Neuerung zieht auch der C-Sprachfamilien-Compiler Clang mit der Gnu-Alternative GCC gleich. C++14 ist nun die von Clang unterstützte Standard-C++-Version. Über die Option “-std=gnu++98” lassen sich auch ältere C++-Projekte übersetzen, die inkompatibel zu C++14 sind.
Weitere Neuerungen gibt es bei den Diagnosefähigkeiten von Clang. Die Warnung “Wpragma-pack” weist auf Fehler im Quelltext hin, beispielsweise wenn sich Speicherzuweisungen (Alignments) vor einem Bibliothekenimport mit “#include” von denen nach dem Import unterscheiden. Zusätzlich gibt es mehrere Null-Pointer-Behandlungen, wenn etwa eine Zeigerarithmetik auf einen leeren Wert verweist. Außerdem gibt es neue Compiler-Flags wie das bereits genannte “-mretpoline” gegen Spectre v2.
Die neue Version 6.0 von LLVM lässt sich über die offizielle Webseite herunterladen. Detaillierte Patch-Informationen stellt die Organisation auf der eigenen Homepage zur Verfügung.






