Версии gcc привязаны к версиям ядра?

Есть ли какая-либо связь между версиями gcc и версией ядра? В частности, смогу ли я установить очень старую версию gcc на последнее ядро. Или я смогу собрать последнюю версию gcc на очень старом ядре? Есть ли проблемы совместимости между ними для любой версии?

3 ответа

Решение

У вас могут возникнуть проблемы с компиляцией новых ядер с очень старыми версиями GCC.

Кроме того, нет, версии GCC не привязаны к версии ядра Linux:

  • Вы можете запустить древнюю версию GCC в системе с новым ядром.
  • Вы можете запустить новую версию GCC в системе с очень старым ядром. Единственное, что могло бы помешать вам сделать это, было бы, если вашей новой версии GCC требуется версия libc это не будет работать на том ядре. Но это не особенно вероятный сценарий.

С учетом сказанного вы должны быть осторожны при установке старого GCC поверх более нового GCC, поскольку может потребоваться более новый GCC. Если вы собираете GCC самостоятельно из исходного кода, вы можете настроить сборку для установки с собственным префиксом (вместо /usr). Если это все еще нарушает сборки, убедитесь, что более новый GCC (который был там раньше) находится в каталоге ранее в PATH переменная окружения, чем старая GCC (которую вы установили совсем недавно).

Я бы с осторожностью использовал более старые версии GCC в более новых системах, особенно если исполняемые файлы более старой версии не называются gcc-1.3 (например, если в этом случае версия 1.3), потому что в противном случае он может конфликтовать с текущей версией, используемой для всего в вашей системе Ubuntu и ломать вещи.

Чтобы ответить на ваш вопрос, ядро ​​и GCC напрямую не связаны, но, скорее всего, ядро ​​было построено с использованием используемой вами версии GCC (или чуть более старой).

Да. Некоторым новым функциям ядра нужна последняя версия gcc и glibc для нормальной работы. Но это не ограниченное ограничение, так как ядро ​​3.0.2 работает только с gcc 4.2.1. Это больше похоже на работу ядра 3.x только с gcc 4.2.x

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