Trwa proces dodawania poprawek LLVMLinux do jądra wanilii (2013-2014).
LLVMLinux to projekt Fundacji Linux: http://llvm.linuxfoundation.org/, który umożliwia zbudowanie jądra wanilii za pomocą LLVM. Wiele poprawek przygotowuje Behan Webster, który jest kierownikiem projektu LLVMLinux.
Jest LWN artykuł o projekcie od maja 2013 https://lwn.net/Articles/549203/ "LFCs: Projekt LLVMLinux"
Obecny status projektu LLVMLinux jest śledzone na stronie http://llvm.linuxfoundation.org/index.php/Bugs#Linux_Kernel_Issues
miejsca (zasadniczo GCC-izmy) już wyeliminowane z jądra: * Expicit Rejestruje zmiennych (nie-C99) * VLAIS (bez C99 zgodny nieudokumentowanym GCC „Variable tablice długości w elemencie”), jak struct S { int array[N];}
nawet struct S { int array[N]; int array_usb_gadget[M]; }
w którym N i M są dla funkcja stała argumentu * Funkcje zagnieżdżone (funkcja Ada przeniesiona do C przez programistów GCC/Gnat; niedozwolone w C99) * Niektóre magiczne gcc/gaz jak specjalnych segmentów lub makro
rzeczy do zrobienia: * Wykorzystanie __builtin_constant_p
wbudowanego polecenia wdrożyć straszny magii jak BUILD_BUG_ON(!__builtin_constant_p(offset));
Dobrą wiadomością o LLVMLinux są takie, że po jego łatach jądro nie tylko staje się możliwe do zbudowania dzięki klockom LLVM +, ale także łatwiejsze do zbudowania przez inne kompilatory niebędące GCC, ponieważ projekt zabija znacznie więcej niż kod C99, taki jak VLAIS, stworzony przez autora gadżetu USB, przez hakerów netfiltra i przez podsystem kryptograficzny hakerzy; również funkcje zagnieżdżone są zabijane.
Duplikat: http://stackoverflow.com/questions/689327/is-it-possible-to-compile-linux-kernel-with-something-other-than-gcc – dmckee
Moje pierwsze pytanie to ..."Dlaczego gcc nie jest opcją?" Nie mówię, że nie powinieneś próbować robić tego, co robisz, w rzeczywistości jest to wspaniałe, aby zaspokoić ciekawość. Ale nurkujesz w pulę rekinów uzbrojonych w lasery, więc większość z nas może chcieć wiedzieć dlaczego. –
@ Tim Post, chcę się dowiedzieć, jakie problemy występują przy kompilowaniu jądra Linux-a z kompilatorami innymi niż GCC. Pracuję z jednym eksperymentalnym kompilatorem i muszę poprawić jego obsługę rozszerzeń gnu, potrzebnych do kompilacji jądra Linux. Łatki z intel (linuxdna) są dla mnie bardzo interesujące. – osgx