Как выбираются версии GCC для компиляции ядра Linux?

Есть ли какая-нибудь универсальная оболочка для stdin ..., которая позволяет анализировать команду оболочки и затем отправлять вывод команды в foo?

Возможно, это может вас вдохновить:

$ echo pwd | sh
/
$ echo pwd | sh | wc
1       1       2

sh - это фильтр. Он может читать команды на стандартном вводе, запускать их и выводить их на стандартный вывод.

3
14.01.2019, 19:46
1 ответ

Я не разработчик ядра, и у меня нет авторитетного ответа, но вот мое мнение по этому поводу:

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

Подводя итог моим двум центам :я думаю, что специалисты по сопровождению Linux будут склонны использовать версию GCC по умолчанию для дистрибутива, в то время как поставщики чипов будут склонны использовать последнюю доступную версию GCC, поддерживающую их цель (и которая хорошо сочетается с другими компонентами. их системы, такие как драйверы ). Надеюсь, это имеет смысл.

По той же проблеме я наткнулся на очень интересную статью из Linux Journal о принятии решения о том, какую версию GCC использовать для ядра, которую стоит прочитать:
Минимальная версия GCC, скорее всего, подскочит с 3.2 до 4.8

4
27.01.2020, 21:17

Теги

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