Я не разработчик ядра, и у меня нет авторитетного ответа, но вот мое мнение по этому поводу:
- Новые дистрибутивы, скорее всего, будут включать последнюю доступную стабильную версию GCC, поскольку она обычно обеспечивает наибольшую ценность (с точки зрения языковой поддержки, функций, диагностики и оптимизации ).
- Сопровождающие, скорее всего, будут использовать GCC дистрибутива по умолчанию для сборки пакетов, что отвечает интересам дистрибутива, поскольку обеспечивает единообразие и стабильность (все используют одну и ту же проверенную версию GCC по умолчанию ).
- Поставщики микросхем обычно полагаются на собственные или портированные компиляторы GCC. Не имеет смысла поддерживать более одного компилятора -дома (с точки зрения усилий и затрат ), и один и тот же компилятор, вероятно, используется клиентами поставщиков чипов (поставщиков SoC или программного обеспечения. компании, которые создают ПО для этих чипов ), поэтому в интересах компании использовать самую старшую версию GCC, поддерживаемую ядром.
- Компиляторы обладают обратной совместимостью, и очень редко GCC вносит критические изменения интерфейса (оставляя в стороне изменения ABI, такие как C++98 до C++11 ), поэтому почти всегда желательно использовать самые последние доступна версия компилятора. Однако существуют также ошибки компилятора, а более новые версии компилятора могут привести к снижению производительности, поэтому обновление версии компилятора может иметь большое значение и может привести к тому, что компании будут продвигать свою версию GCC очень медленными темпами (, а поставщики микросхем разрабатывают свои собственные компиляторы, тоже очень дорогие ).
Подводя итог моим двум центам :я думаю, что специалисты по сопровождению Linux будут склонны использовать версию GCC по умолчанию для дистрибутива, в то время как поставщики чипов будут склонны использовать последнюю доступную версию GCC, поддерживающую их цель (и которая хорошо сочетается с другими компонентами. их системы, такие как драйверы ). Надеюсь, это имеет смысл.
По той же проблеме я наткнулся на очень интересную статью из Linux Journal о принятии решения о том, какую версию GCC использовать для ядра, которую стоит прочитать:
Минимальная версия GCC, скорее всего, подскочит с 3.2 до 4.8
valiano
27.01.2020, 21:17
Ссылка