Es gibt einen fortlaufenden Prozess der Übertragung von LLVMLinux-Patches in den Vanilla-Kernel (2013-2014).
Das LLVMLinux ist ein Projekt von The Linux Foundation: http://llvm.linuxfoundation.org/, damit der Vanilla-Kernel mit LLVM erstellt werden kann. Viele Patches werden von Behan Webster, dem Projektleiter von LLVMLinux, vorbereitet.
Es ist LWN Artikel über das Projekt ab Mai 2013 https://lwn.net/Articles/549203/ "LFCs: Das LLVMLinux Projekt"
Aktueller Stand der LLVMLinux Projekt wird auf Seite verfolgt http://llvm.linuxfoundation.org/index.php/Bugs#Linux_Kernel_Issues
Things (im Grunde gcc-isms) bereits ausgeschieden vom Kernel: * Expicit Registervariablen (nicht C99) * VLAIS (nicht C99-konformes undokumentiertes GCC-Feature "Arrays variabler Länge in Strukturen") wie struct S { int array[N];}
oder sogar struct S { int array[N]; int array_usb_gadget[M]; }
wobei N und M nicht-konstante Funktion Argument sind * Verschachtelte Funktionen (Ada-Funktion, die von GCC/Gnat-Entwicklern in C portiert wurde; nicht in C99 erlaubt) * Einige gcc/Gas-Magie wie spezielle Segmente oder Makro
Dinge zu tun: * Verbrauch von __builtin_constant_p
builtin wie beängstigend Magie zu implementieren BUILD_BUG_ON(!__builtin_constant_p(offset));
Die gute Nachricht über LLVMLinux sind, dass nach seinen Patches Kernel wird nicht nur mit LLVM + Clang, sondern auch leichter von anderen Nicht-GCC-Compilern gebaut werden, weil das Projekt viel nicht C99-Code wie VLAIS, erstellt von USB-Gadget-Autor, Netfilter Hacker und Crypto-Subsystem Hacker; Auch verschachtelte Funktionen werden getötet.
Duplizieren: http://stackoverflow.com/questions/689327/is-it-possible-to-compile-linux-kernel-with-something-other-than-gcc – dmckee
Meine erste Frage wäre .."Warum ist gcc keine Option?" Ich sage nicht, dass du nicht versuchen solltest, das zu tun, was du tust, in der Tat ist es großartig zu sehen, dass Neugier geweckt wird. Aber du taucht ein in einen Pool von Haien, die mit Lasern bewaffnet sind, also wollen die meisten von uns wissen warum. –
@Tim Post, ich möchte lernen, welche Probleme gibt es bei der Kompilierung von Linux-Kernel mit Nicht-GCC-Compiler. Ich arbeite mit einem experimentellen Compiler und muss die Unterstützung von Gnu-Erweiterungen verbessern, die zum Kompilieren des Linux-Kernels benötigt werden. Patches von Intel (linuxdna) sind sehr interessant für mich. – osgx