El nucli Linux 4.19 requereix ara GCC 4.6 per construir, a causa de fallades de compilació en arquitectures antigues

Linux-Unix / El nucli Linux 4.19 requereix ara GCC 4.6 per construir, a causa de fallades de compilació en arquitectures antigues 1 minut de lectura

Linux Kernel Organization, Inc.



Per als desenvolupadors de Linux que treballen al nucli, el nucli Linux 4.19 que es llançarà augmenta la versió mínima GCC necessària per a la construcció del nucli. El nucli oficial de Linux ha inclòs GCC 3.2 com a mínim la versió del compilador necessària per a la construcció del nucli, però el nucli Linux 4.19 està elevant-lo a GCC 4.6.

Això es deu al fet que diverses arquitectures de versions anteriors de GCC4 han fallat en la compilació neta del nucli de Linux, per la qual cosa GCC 4.6 s'estableix com a mínim. El nucli també comprovarà explícitament si hi ha GCC 4.6.0 o una versió més recent i, si no es troba, el compilador s'errorarà.



Això també és beneficiós per al codi del nucli, ja que els desenvolupadors del nucli van ser capaços de treure diverses dotzenes de línies de codi per a solucions antigues del GCC dirigides a errors de compilador i diferències de comportament en les versions anteriors del compilador.



Aquest canvi s’ha fusionat just abans d’avui mitjançant Git commit i GCC 4.6.0 es va publicar el 2011, de manera que veurem si GCC també té actualitzacions en el futur.



El registre de canvis / commit d’aquesta actualització bàsicament especifica que el canvi es deu gairebé completament a causa de que les versions anteriors del compilador GCC no han pogut construir el nucli sota diverses arquitectures, tal com s’indica a continuació:

 Diverses arquitectures no es poden construir correctament amb versions anteriors del compilador gcc. Un exemple de Guenter Roeck al fil [1]:>> Al fitxer inclòs de ./include/linux/mm.h:17:0,> de ./include/linux/pid_namespace.h:7,> de ./include /linux/ptrace.h:10,> de arch / openrisc / kernel / asm-offsets.c: 32:> ./include/linux/mm_types.h:497:16: error: membre de matriu flexible en una estructura buida> > Aquest és només un exemple amb gcc 4.5.1 per a or32. També he vist el problema> amb gcc 4.4 (per unicore32). Per tant, actualitzeu la versió mínima necessària de gcc a la 4.6. [1] https://lore.kernel.org/lkml/20180814170904.GA12768@roeck-us.net/ Divers: - Actualització de la documentació / process / changes.rst - Eliminació i consolidació de blocs de prova de versions al compilador-gcc.h per a versions inferiors a 4.6

Pel que fa als esforços de LLVM Clang per construir el nucli principal Linux x86_64, actualment hi ha alguna parada, especialment en el projecte LLVMLinux, tot i que s’ha treballat en la construcció del nucli a través de l’espai ARM Linux amb Clang.