Menü

LLVM und Clang 3.6 verbessern Kernel- und Windows-Unterstützung

Die neuen Versionen von LLVM Compiler Infrastructure und Clang erweitern den Support für moderne C/C++-Standards und verbessern die Unterstützung für Windows. Zudem bringen sie alles mit, um nun auch Linux-Kernel zu übersetzen.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 137 Beiträge
Von

Das LLVM-Projekt hat die Versionen 3.6 von LLVM Compiler Infrastructure und Clang freigegeben. Die neue Version des auf LLVM aufbauende Compilers für Sprachen der C-Familie verbessert über zahlreiche Fehlerkorrekturen und Erweiterungen die Windows-Unterstützung. Dadurch soll Clang nun auch unter Windows "self-hosting" sein – es kann sich also selbst übersetzen. In diesem Zug wurde auch das C++-ABI (Application Binary Interface) für Microsoft-Plattformen "mehr oder weniger fertig", wie die Dokumentation erläutert.

Mit den neuen Compiler-Werkzeugen sollen sich nun auch Linux-Kernel kompilieren lassen. Das gelingt aber nur mit Linux-Quellen, die man mit Patches von LLVMLinux modifiziert hat – einem Projekt, das die LLVM-/Clang-Kompatibilität der offiziellen Linux-Quellen in den letzten Monaten bereits erheblich verbessert hat. Die neue LLVM-Version wird zudem Funktionsumfang und Performance der quelloffenen Linux-Treiber für aktuelle Radeon-Grafikkarten verbessern, denn diese greifen auf das Backend R600 von LLVM zurück, das für 3.6 verbessert wurde.

Mit der neuen Version bringt LLVM erstmals Bindings für die Programmiersprache Go mit. C-Code interpretiert Clang jetzt standardmäßig gemäß C-Sprachstandard C11; auch die derzeit vorbereitete Version 5.0 der GNU Compiler Collection (GCC) wird vermutlich so vorgehen. Die Clang-Entwickler haben zudem die Unterstützung für die nächste Version des C++-Standards ausgebaut, der derzeit als C++1z gehandelt wird und vermutlich die Bezeichnung C++17 bekommt.

Die neuen Versionen stehen auf der Projekt-Homepage zum Download bereit. Weitere Details zu den Neuerungen stehen in den Release Notes für LLVM 3.6 und Clang 3.6 (thl)