Версия ядра Linux и соответствие версии GCC

Существует ли рекомендуемая версия GCC для компиляции ядра Linux?

Я нахожу заголовок ядра Linux "компилятором-GCC". Это включает информацию о ядре, рекомендовал версию GCC? Таким образом, я могу найти информацию о компиляции в исходном коде ядра Linux?

5
задан 19 January 2017 в 23:49

1 ответ

Необходимо смочь создать ядро Linux с довольно старой версией GCC, вероятно, назад до GCC 3.2. файл README верхнего уровня в Linux 4.9.4 упоминания:

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

И Документация/Изменения дает список требуемых версий GCC (перечисленный как "GNU C") и другие зависимости от сборки для Linux, а также , как для проверки, какую версию каждого Вы в настоящее время устанавливали:

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

Это - хорошая идея проверить Documentation/Changes файл в источнике ядра, Вы - на самом деле планирование компиляции.

Со всем, что сказало, это - вероятно, хорошая идея использовать относительно последнюю версию GCC, так как более новые версии имеют лучшие оптимизаторы и таким образом могут часто производить более быстрый код, и так как более новые версии имеют больше читаемой диагностики, таким образом, может быть легче выяснить то, что пошло неправильно Ваших сбоев сборки.

В целом, я рекомендую использовать версию GCC, который официально упаковывается для Вашей системы. В Ubuntu версия GCC, который установлен как зависимость build-essential метапакет, должна всегда быть необходимой, по крайней мере, для создания ядер, которые не являются далеки более новый, чем ядро, официально упакованное для Вашей системы.

2
ответ дан 23 November 2019 в 10:35

Другие вопросы по тегам:

Похожие вопросы: