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.