Есть ли какая-либо связь между версиями gcc и версией ядра? В частности, смогу ли я установить очень старую версию gcc на последнее ядро. Или я смогу собрать последнюю версию gcc на очень старом ядре? Есть ли проблемы совместимости между ними для любой версии?
У вас могут возникнуть проблемы при компиляции новых ядер с очень старых версий GCC.
Кроме того, нет, версии GCC не привязаны к версии ядра Linux:
libc
, которая не будет работать на этом ядре. Но это не особенно вероятный сценарий. С учетом сказанного, вы должны быть осторожны при установке старого GCC поверх более нового GCC , поскольку может потребоваться более новый GCC. Если вы собираете GCC самостоятельно из исходного кода, вы можете настроить сборку для установки с собственным префиксом (а не /usr
). Если это по-прежнему нарушает сборку, убедитесь, что более новый GCC (который был там ранее) находится в каталоге ранее в переменной среды PATH
, чем более старый GCC (который вы установили недавно).
Да. Некоторым новым функциям ядра нужна последняя версия gcc и glibc для нормальной работы. Но это не ограниченное ограничение, так как ядро 3.0.2 работает только с gcc 4.2.1. Это больше похоже на ядро 3.x, работающее только с gcc 4.2.x
Я бы с осторожностью использовал более старые версии GCC в более новых системах, особенно если исполняемые файлы более старой версии не называются gcc-1.3 (например, если в этом случае версия 1.3), потому что в противном случае это может конфликтовать с текущей версией. используется для всего в вашей системе Ubuntu и ломает вещи.
Хотя, чтобы ответить на ваш вопрос, ядро и GCC не связаны напрямую, но, скорее всего, ядро было построено с версией GCC, которую вы используете (или немного старше).