6 votes

Correspondance entre la version du noyau Linux et la version de GCC

Y a-t-il une version de GCC recommandée pour la compilation du noyau Linux ?

Je trouve l'en-tête du noyau Linux "compiler-GCC". Comprend-il des informations sur la version de GCC recommandée par le noyau ? Autrement dit, puis-je trouver des informations sur la compilation dans le code source du noyau Linux ?

3voto

Eliah Kagan Points 111731

Vous devriez être capable de construire le noyau Linux avec une version assez ancienne de GCC, probablement jusqu'à GCC 3.2. Le fichier README de premier niveau sous Linux 4.9.4 mentions :

 - Make sure you have at least gcc 3.2 available.
   For more information, refer to Documentation/Changes.

Et Documentation/Modifications donne une liste des versions requises de GCC (listées comme "GNU C") et des autres dépendances de construction pour Linux, ainsi que de comment pour vérifier la version de chacun d'eux que vous avez actuellement installée :

====================== ===============  ========================================
        Program        Minimal version       Command to check the version
====================== ===============  ========================================
GNU C                  3.2              gcc --version
GNU make               3.80             make --version
binutils               2.12             ld -v
util-linux             2.10o            fdformat --version
module-init-tools      0.9.10           depmod -V
e2fsprogs              1.41.4           e2fsck -V
jfsutils               1.1.3            fsck.jfs -V
reiserfsprogs          3.6.3            reiserfsck -V
xfsprogs               2.6.0            xfs_db -V
squashfs-tools         4.0              mksquashfs -version
btrfs-progs            0.18             btrfsck
pcmciautils            004              pccardctl -V
quota-tools            3.09             quota -V
PPP                    2.4.0            pppd --version
isdn4k-utils           3.1pre1          isdnctrl 2>&1|grep version
nfs-utils              1.0.5            showmount --version
procps                 3.2.0            ps --version
oprofile               0.9              oprofiled --version
udev                   081              udevd --version
grub                   0.93             grub --version || grub-install --version
mcelog                 0.6              mcelog --version
iptables               1.4.2            iptables -V
openssl & libcrypto    1.0.0            openssl version
bc                     1.06.95          bc --version
Sphinx\ [#f1]_         1.2              sphinx-build --version
====================== ===============  ========================================

.. [#f1] Sphinx is needed only to build the Kernel documentation

C'est une bonne idée de vérifier le Documentation/Changes dans les sources du noyau que vous avez l'intention de compiler.

Cela dit, c'est probablement une bonne idée d'utiliser une version relativement récente de GCC, car les nouvelles versions ont de meilleurs optimiseurs et peuvent donc souvent produire un code plus rapide, et comme les nouvelles versions ont des diagnostics plus lisibles, il peut être plus facile de comprendre ce qui s'est passé si votre construction échoue.

En général, je recommande d'utiliser la version de GCC qui est officiellement packagée pour votre système. Dans Ubuntu, la version de GCC qui est installée comme une dépendance de l'application build-essential devrait toujours être suffisant, au moins pour construire des noyaux qui ne sont pas loin plus récent que le noyau officiellement packagé pour votre système.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X