В ядре Linux 5.18 планируют разрешить использование стандарта языка Си C11

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
25-Фев-2022 21:30

В процессе обсуждения набора патчей с исправлением связанных с уязвимостями класса Spectre проблем в коде для работы со связанными списками, стало ясно, что проблему удалось бы решить более изящно, если бы в ядро допускался код на языке Си, соответствующий более новой версии стандарта. В настоящее время добавляемый ядро код должен соответствовать спецификации ANSI C (С89), сформированной ещё в 1989 году.
Связанная со Spectre проблема в коде была вызвана продолжением использования отдельно определяемого итератора после цикла - для перебора элементов связанного списка используется макрос и так как итератор цикла передаётся в этот макрос, он определяется вне самого цикла и остаётся доступен после цикла. Использование стандарта C99 позволило бы определять переменные для цикла в блоке for(), что решило бы проблему без придумывания обходных путей.
Линус Торвальдс согласился с идеей реализации поддержки более новых спецификаций и предложил перейти в ядре 5.18 на использование стандарта C11, опубликованного в 2011 году.
При предварительной проверке сборка в GCC и Clang в новом режиме прошла без отклонений. Если при более тщательном тестировании не возникнет непредвиденных проблем, в сборочных скриптах ядра 5.18 опция '--std=gnu89' будет заменена на '--std=gnu11 -Wno-shift-negative-value'. Рассматривалась возможность и использования стандарта C17, но в этом случае пришлось бы повышать минимально поддерживаемую версию GCC. Включение же поддержки C11 укладываются в текущие требования к версии GCC (5.1).
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_linux, #_kernel, #_compile
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 10-Май 09:51
Часовой пояс: UTC + 5