Logo fr.nowadaytechnol.com

Le Noyau Linux 4.19 Nécessite Maintenant GCC 4.6 Pour Se Construire, En Raison D'échecs De Compilation Sur Une Architecture Plus Ancienne

Le Noyau Linux 4.19 Nécessite Maintenant GCC 4.6 Pour Se Construire, En Raison D'échecs De Compilation Sur Une Architecture Plus Ancienne
Le Noyau Linux 4.19 Nécessite Maintenant GCC 4.6 Pour Se Construire, En Raison D'échecs De Compilation Sur Une Architecture Plus Ancienne

Vidéo: Le Noyau Linux 4.19 Nécessite Maintenant GCC 4.6 Pour Se Construire, En Raison D'échecs De Compilation Sur Une Architecture Plus Ancienne

Vidéo: Le Noyau Linux 4.19 Nécessite Maintenant GCC 4.6 Pour Se Construire, En Raison D'échecs De Compilation Sur Une Architecture Plus Ancienne
Vidéo: compiler votre propre noyau linux (kernel) 2024, Mars
Anonim
Image
Image

Pour les développeurs Linux travaillant sur le noyau, le noyau Linux 4.19 à paraître augmente la version minimale de GCC requise pour la construction du noyau. Le noyau Linux officiel a répertorié GCC 3.2 comme la version minimale du compilateur requise pour la construction du noyau, mais le noyau Linux 4.19 élève cela à GCC 4.6.

Ceci est dû au fait que diverses architectures sur les anciennes versions de GCC4 n'ont pas réussi à compiler proprement le noyau Linux, d'où la raison pour laquelle GCC 4.6 est défini comme le minimum. Le noyau vérifiera également explicitement la présence de GCC 4.6.0 ou plus récent et s'il n'est pas trouvé, le compilateur affichera une erreur.

Ceci est également bénéfique pour le code du noyau, car les développeurs du noyau ont pu supprimer plusieurs dizaines de lignes de code pour les anciennes solutions de contournement GCC qui visaient les bogues du compilateur et les différences de comportement dans les anciennes versions du compilateur.

Ce changement a été fusionné juste plus tôt dans la journée viGit commit - et GCC 4.6.0 a été publié en 2011, nous verrons donc si GCC a également des mises à jour dans le futur.

Le changelog / commit de cette mise à jour spécifie essentiellement que le changement est à peu près entièrement dû au fait que les anciennes versions du compilateur GCC ne parviennent pas à construire le noyau sous diverses architectures, comme indiqué ci-dessous:

Diverses architectures ne parviennent pas à se construire correctement avec les anciennes versions du compilateur gcc. Un exemple de Guenter Roeck dans le thread [1]:>> Dans le fichier inclus 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: erreur: membre de tableau flexible dans une structure autrement vide> > Ceci n'est qu'un exemple avec gcc 4.5.1 pour or32. J'ai également vu le problème avec gcc 4.4 (pour unicore32). Mettez donc à jour la version minimale requise de gcc vers 4.6. [1] https://lore.kernel.org/lkml/20180814170904. [email protected]/ Divers: - Mettre à jour la documentation / process / changes.rst - Supprimer et consolider les blocs de test de version dans compiler-gcc.h pour les versions inférieures à 4.

En ce qui concerne les efforts de LLVM Clang pour construire le noyau Linux x86_64 principal, il y a actuellement un certain blocage avec les efforts, en particulier dans le projet LLVMLinux - bien qu'il y ait eu du travail dans la construction du noyau via l'espace ARM Linux avec Clang.

Conseillé: