Zum Hauptinhalt Zur Navigation Zur Suche

Compiler: LLVM 9 baut x86-Linux-Kernel

Die aktuelle Version 9 des Compiler-Baukastens LLVM ermöglicht erstmals das Bauen des Linux-Kernels für x86-Systeme. Darüber hinaus ist die Unterstützung für den CPU-Befehlssatz RISC-V nun stabil.
/ Sebastian Grüner
3 Kommentare Auf Google folgen (öffnet im neuen Fenster)
Das LLVM-Maskottchen ist ein Drache. (Bild: Pixabay)
Das LLVM-Maskottchen ist ein Drache. Bild: Pixabay

Das LLVM-Projekt hat die Version 9(öffnet im neuen Fenster) seines Compiler-Baukastens mit vielen verschiedenen Bestandteilen veröffentlicht. Der eigene C-Compiler des Projekts, Clang(öffnet im neuen Fenster), unterstützt nun die Erweiterung asm goto(öffnet im neuen Fenster). Diese wurde bisher nur von GCC unterstützt, wird aber im x86-Teil des Linux-Kernel häufig genutzt.

Dank dieser Änderung kann der Linux-Kernel für die x86-Architektur nun also auch mit Clang und LLVM gebaut werden. Für die ARM-Architekturen geht das schon länger. Diese Arbeiten werden vor allem von Google vorangetrieben, die damit etwa ihre Kernel für Chrome OS bauen. Derzeit testet das Team diese für den produktiven Einsatz.

Experimentell zu Clang hinzugefügt hat das Team die Unterstützung von C++ für OpenCL. Dieses baut auf OpenCL C 2.0 sowie auf Funktionen aus C++17 auf und ermöglicht eben die Nutzung von C++-Code in OpenCL-Kernel-Code. Weitere Details dazu liefert die Dokumentation des Projekts. Die C++-Standardbibliothek des Projekts, Libc++, unterstützt darüber hinaus nun das Webassembly System Interface (WASI).

RISC-V-Target ist stabil

Für den Kernbestandteil von LLVM selbst gilt RISC-V nun außerdem nicht mehr als experimentell und wird standardmäßig gebaut, so dass alle LLVM-Nutzer künftig einfach Binärdateien für die freie Architektur erstellen können. Unterstützt werden dabei sowohl RV32I als auch RV64I mit den üblichen Erweiterungen MAFDC, die offiziell als eingefroren gelten.

Für die 64-Bit-ARM-Architektur (Aarch64) bietet LLVM nun Assembly-Unterstützung für Scalable Vector Extension 2 und die Memory Tagging Extensions (MTE). Letztere will Google künftig in Android verwenden. Darüber hinaus unterstützt das AMDGPU-Target nun auch die neuen Navi-Grafikchips von AMD. Weitere Details listen die Release-Notes(öffnet im neuen Fenster).


Relevante Themen