Domanda

kernel di Linux è stato scritto per la compilazione con gcc e usa un sacco di piccole e brutte gcc-hack. Quali compilatori possono compilare il kernel di Linux, tranne gcc?

L'uno, che può, è il processore Intel Compiler. Quale versione minima di esso è necessario per la compilazione del kernel?

C'è stato anche un compilatore C piccolo, ma era in grado di compilare solo ridotto e appositamente curato versione del kernel.

C'è altri compilatori in grado di costruire kernel?

È stato utile?

Soluzione 2

Non c'è processo continuo di commettere patch LLVMLinux nel kernel vanilla (2013-2014).

Il LLVMLinux è il progetto da The Linux Foundation: http://llvm.linuxfoundation.org/ per consentire kernel vanilla da costruire con LLVM. Lotto di patch vengono preparati da Behan Webster, che è LLVMLinux responsabile del progetto.

Non è l'articolo di LWN sul progetto da maggio 2013 https://lwn.net/Articles/549203/ "LFCS: il progetto LLVMLinux"

Stato attuale del progetto LLVMLinux è tracciato a pagina http://llvm.linuxfoundation.org /index.php/Bugs#Linux_Kernel_Issues

Cose (fondamentalmente gcc-ismi) già eliminati dal kernel: * Expicit Registri Variabili (non-C99) * VLAIS (non C99 conforme documentata caratteristica GCC "matrici a lunghezza variabile struct") come struct S { int array[N];} o addirittura struct S { int array[N]; int array_usb_gadget[M]; } dove N ed M sono argomento della funzione non costante * Funzioni nidificate (Funzione Ada portato in C da CCG / sviluppatori Gnat, non consentito in C99) * Alcuni magia gcc / gas come segmenti particolari, o macro

Cose da fare: * L'utilizzo di __builtin_constant_p incorporato per implementare la magia spaventoso come BUILD_BUG_ON(!__builtin_constant_p(offset));

La buona notizia di LLVMLinux sono che dopo kernel non solo le sue patch diventa edificabile con LLVM + clang, ma anche più facile da costruire con altri compilatori non GCC, perché il progetto uccide tanto non il codice C99 come VLAIS, creato da gadget usb autore, da parte di hacker netfilter, e da parte di hacker sottosistema di crittografia; anche funzioni nidificate vengono uccisi.

Altri suggerimenti

Un informazioni outdatet: è necessario patchare il kernel per compilare utilizzando l'Intel CC Scarica patch per il kernel di Linux per Intel Compiler

Vedi anche E 'possibile per compilare il kernel di Linux con qualcosa di diverso gcc per ulteriori collegamenti e le informazioni

Su delle fonti più recenti: http://forums.fedoraforum.org/ showthread.php? p = 1328718

In breve, non è possibile, perché il codice del kernel è stato scritto per sfruttare la semantica del compilatore del gcc ... e tra il kernel e il codice compilato, il rapporto è uno molto forte, vale a dire deve essere compilato con gcc. ..Since usi gcc 'ELF' file oggetto (embedded Linking Format), il kernel deve essere costruito utilizzando il formato codice oggetto. A meno che non si può incidere fino a lavorare con un altro compilatore - si può ben compilare, ma non può funzionare, come i compilatori sotto Windows produce codice PE, ci potrebbero essere risultati inaspettati, il che significa che il kernel potrebbe non avviarsi a tutti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top