Принято решение о переводе разработки ядра Linux 5.18 на стандарт C11

Изображение: (сс) fancycrave1
Программирование
Программирование

Использование стандарта языка программирования C ISO/IEC 9899:2011 (C11) взамен ранее использовавшемуся ANSI X3.159-1989 (C89) для разработки ядра операционной системы (ОС) Linux принято командой разработчиков, 26 марта сообщает американский новостной портал об открытых проектах и мире ОС Linux Phoronix.

В 2021 году вместе с выходом ядра Linux 5.15 было повышено требование к минимальной версии компилятора до GCC 5.1. Изменение минимальной версии компилятора позволило решить, что применение C11 взамен устаревшему C89 безопасно.

Осуществить переход решено в следующей версии Linux 5.18. Поскольку уже формируются предварительные версии Linux 5.18, то переход, по сути, осуществлен. Причем промежуточные стандарты C90 и C99 решено не использовать, а сразу перейти к C11.

В сценариях сборки ядра 5.18 инструкция «–std=gnu89» будет заменена на «–std=gnu11 -Wno-shift-negative-value».

Применение более свежей версии позволит упростить разработку и избежать некоторых проблем. В частности, C11 позволяет определять переменные внутри цикла, что упрощает защиту от уязвимостей типа Spectre.