2024-09-27 Обновлены binutils до 2.41 и glibc до 2.40.
Поддерживаемые версии: safec8 — safe-13.3
Ветка Версия (дата) safec8 124 (2024-09-27) safec9 321 (2024-09-27) safec10 104 (2024-09-27) safe-11.4 113 (2024-09-27) safe-12.3 74 (2024-09-27) safe-13.3 66 (2024-09-27) 2024-08-02 Добавлена новая опция
--print-safe-options=<level>
, которая распечатывает набор опций безопасного компилятора, эквивалентный опции-Safe<level>
. (*)Эта опция помогает оценить сложность перехода на использование полноценного безопасного компилятора класса
level
. Также она позволяет минимизировать комбинацию опций при отладке проблем.(*): Получаемый набор опций имеет следующие отличия от
-Safe<level>
.-
Не используется механизм, запрещающий отключение отдельных опций.
Благодаря этому можно оценить общее число проблем, выявляемых безопасным компилятором заданного класса на кодовой базе. При использовании самих
-Safe
-опций остановка трансляции или выполнения не позволяет увидеть все проблемные места сразу. -
Допускается понижение классов предупреждений (например, error до warning) для отдельного файла или функции через прагмы
pragma GCC diagnostic
. -
В него не входят флаги, передаваемые компоновщику.
В этой версии распечатка не включает флаги, передаваемые компоновщику. Поэтому для эмуляции поведения
-Safe1
нужно передать дополнительные опции либо выполнить фазы компиляции и линковки отдельными командами:gcc -c -O2 $(gcc -print-safe-options=1) foo.c bar.c && gcc -O2 -Safe1 foo.o bar.o
Поддерживаемые версии: safec8 — safe-13.3
Ветка Версия (дата) safec8 120 (2024-08-16) safec9 318 (2024-09-20) safec10 100 (2024-09-20) safe-11.4 109 (2024-09-20) safe-12.3 70 (2024-08-16) safe-13.3 63 (2024-08-02) -
2024-06-04 Исправлена ошибка в работе опции
--dump-sbom
в C++. В этом сценарии в выходном JSON содержимое поляdependencies
было пустым вне зависимости от наличия подключаемых заголовочных файлов.Поддерживаемые версии: safec8 — safe-13.3
Ветка Версия (дата) safec8 115 (2024-06-04) safec9 313 (2024-06-04) safec10 96 (2024-06-04) safe-11.4 105 (2024-06-04) safe-12.3 66 (2024-06-05) safe-13.3 58 (2024-07-11) 2024-05-27 Исправлено ложное срабатывание
-fsanitize=function
(входит в-Safe1
), встретившееся на QEMU.Поддерживаемые версии: safec8 — safe-13.3
Ветка Версия (дата) safec8 114 (2024-05-30) safec9 312 (2024-05-30) safec10 95 (2024-05-31) safe-11.4 104 (2024-05-31) safe-12.3 65 (2024-05-27) safe-13.3 60 (2024-07-11) 2024-04-16 Исправлена работа опции
--dump-sbom
при использовании режима препроцессирования без компиляции. В этом сценарии выходной JSON не содержал поляdependencies
.Поддерживаемые версии: safec8 — safe-13.3
Ветка Версия (дата) safec8 113 (2024-04-17) safec9 311 (2024-04-17) safec10 94 (2024-04-16) safe-11.4 103 (2024-04-16) safe-12.3 63 (2024-05-02) safe-13.3 58 (2024-07-11) 2024-03-14 Предупреждения, контролируемые опцией
-Warray-bounds
в прошлых версиях безопасного компилятора, разбиты на две группы. Часть предупреждений вынесена под опцию-Wextra-array-bounds
.Первая группа теперь включает только срабатывания
-Warray-bounds
компилятора GCC соответствующей версии. Поведение, контролируемое опцией-Warray-bounds
безопасного компилятора, приведено в соответствие с одноимённой опцией GCC.Во вторую группу вынесены дополнительные срабатывания, реализованные ранее в безопасном компиляторе. Для управления предупреждениями второй группы добавлена опция
-Wextra-array-bounds
.Предупреждения, контролируемые новой опцией, по-прежнему включены в набор предупреждений
-Safe3
и более высоких классов защищённости. Однако теперь они не приводят к остановке трансляции, если опция-Werror=extra-array-bounds
не указана явно.Поддерживаемые версии: safec8 — safe-13.3
Ветка Версия (дата) safec8 110 (2024-04-05) safec9 308 (2024-04-03) safec10 91 (2024-04-03) safe-11.4 102 (2024-03-14) safe-12.3 64 (2024-05-02) safe-13.3 59 (2024-07-11) 2024-03-07 В скрипт
comp_db_parser
добавлена опция--format {all, infiles}
, благодаря которой можно настроить выходные данные: распечатать информацию обо всех исходных файлах, вошедших в программу (all
), или только о файлах, непосредственно переданных как аргументы командной строки компилятора (infiles
).Поддерживаемые версии: safec8 — safe-13.3
Ветка Версия (дата) safec8 112 (2024-04-16) safec9 310 (2024-04-16) safec10 93 (2024-04-09) safe-11.4 101 (2024-03-07) safe-12.3 63 (2024-05-02) safe-13.3 58 (2024-07-11) 2023-12-13 Добавлена возможность генерации детального SBoM (Software Bill of Materials) с помощью опции
--dump-sbom
. SBoM содержит информацию о компонентах компиляции, зависимостях, конфигурациях и результирующих выходных файлах.Поддерживаемые версии: safec8 — safe-13.3
Ветка Версия (дата) safec8 108 (2024-02-01) safec9 307 (2024-02-20) safec10 90 (2024-02-19) safe-11.4 98 (2023-12-13) safe-12.3 63 (2024-05-02) safe-13.3 58 (2024-07-11)