Versão do kernel do Linux e versão do GCC

4

Existe uma versão recomendada do GCC para compilar o kernel do Linux?

Eu acho o cabeçalho do kernel Linux "compilador-GCC". Inclui informações sobre a versão recomendada do kernel no GCC? Ou seja, posso encontrar informações sobre a compilação no código-fonte do kernel do Linux?

    
por Sung-il 18.01.2017 / 11:41

1 resposta

2

Você deve ser capaz de construir o kernel do Linux com uma versão bem antiga do GCC, provavelmente de volta ao GCC 3.2. O nível superior Arquivo README no Linux 4.9.4 menciona:

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

E Documentation / Changes fornece uma lista das versões requeridas do GCC (listadas como" GNU C ") e as outras dependências de compilação para o Linux, assim como como verificar qual versão de cada você atualmente instalou:

====================== ===============  ========================================
        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

É uma boa ideia verificar o arquivo Documentation/Changes na origem do kernel que você está realmente planejando compilar.

Com tudo isso dito, é provavelmente uma boa ideia usar uma versão relativamente recente do GCC, já que as versões mais novas têm melhores otimizadores e, portanto, podem produzir códigos mais rápidos, e como versões mais novas têm diagnósticos mais legíveis, pode ser mais fácil descobrir o que deu errado na sua construção falhar.

Em geral, recomendo usar a versão do GCC que é oficialmente fornecida para o seu sistema. No Ubuntu, a versão do GCC que é instalada como uma dependência do build-essential metapackage deve sempre ser suficiente, pelo menos para construir kernels que não são longe mais recentes que o kernel oficialmente empacotado para o seu sistema .

    
por Eliah Kagan 19.01.2017 / 03:16

Tags