Итоги 2025 года (в основном) — накопившиеся изменения в SAFEC, о которых
не было анонса. Всё это время исправно выходили новые версии и
публиковался changelog.
Исправлено ложное срабатывание -fsanitize=function (входит в -Safe1),
встретившееся на QEMU.
https://safecompiler.pages.ispras.ru/changelog/gcc/#fix-comphash-canonical-…
Добавлена новая опция --print-safe-options=<level>, которая печатает
набор опций безопасного компилятора, эквивалентный опции -Safe<level>.
https://safecompiler.pages.ispras.ru/changelog/gcc/#add-print-safe-options
В конфигурацию сборки добавлен флаг --enable-checking=release,
отключающий внутренние проверки компилятора, предназначенные для
разработчиков.
https://safecompiler.pages.ispras.ru/changelog/gcc/#use-enable-checking-rel…
Исправлена внутренняя ошибка компилятора в коде диагностики -Wclobbered,
встретившаяся при компиляции LXC.
https://safecompiler.pages.ispras.ru/changelog/gcc/#fix-ice-wclobbered-lost…
Исправлена внутренняя ошибка компилятора в коде диагностики -Wclobbered,
встретившаяся при компиляции Boost.
https://safecompiler.pages.ispras.ru/changelog/gcc/#fix-ice-wclobbered-due-…
Исправлено поведение ThreadSanitizer при выводе summary: санитайзер
ранее не распознавал стековые фреймы, порождённые вызванными из libtsan
функциями, как внутренние, вследствие чего некорректно выводилось место
ошибки.
https://safecompiler.pages.ispras.ru/changelog/gcc/#fix-tsan-frame-is-inter…
Исправлена ошибка заголовочных файлов с проверками безопасности,
встретившаяся в libtar.
https://safecompiler.pages.ispras.ru/changelog/gcc/#fix-safe-fortify-vsnpri…
Исправлен некорректный запрет gets в случае, если до #include<stdio.h>
слово gets определяется как макрос.
https://safecompiler.pages.ispras.ru/changelog/gcc/#fix-safe-fortify-add-un…
Исправлена выдача диагностики о выходе за границы массива
(-Warray-bounds) при использовании -Safe2.
https://safecompiler.pages.ispras.ru/changelog/gcc/#fix-safe2-warray-bounds
Исправлена ошибка в addon-toolchain, приводившая к компоновке с
системной libc, если в качестве директории для поиска библиотек (с
помощью -L) была передана директория, содержащая компоненты libc.
https://safecompiler.pages.ispras.ru/changelog/gcc/#force-linking-with-at-l…
Исправлена ошибка, позволявшая переопределить уровень _FORTIFY_SOURCE,
гарантируемый опцией -Safe[1..3], меньшим уровнем через командную строку.
https://safecompiler.pages.ispras.ru/changelog/gcc/#fix-fortify-forcing
Исправлена ошибка, возникавшая при использовании опции -floc-var-per на
архитектуре aarch64 при использовании векторных инструкций из набора SVE.
https://safecompiler.pages.ispras.ru/changelog/gcc/#properly-avoid-exceedin…
Внедрены исправления для CVE-2023-4039 — уязвимости опции
-fstack-protector на архитектуре aarch64 для safec8—safec10.
https://safecompiler.pages.ispras.ru/changelog/gcc/#cve-2023-4039
Опция -Wno-parameter-types переименована в -Wno-declaration-missing-parameter-type.
https://safecompiler.pages.ispras.ru/changelog/gcc/#declaration-missing-par…
Удалена опция --dump-sbom.
https://safecompiler.pages.ispras.ru/changelog/gcc/#revert-sbom-functionali…
Исправлены ошибки сборки некоторых PIE файлов с помощью safec8—safec10.
https://safecompiler.pages.ispras.ru/changelog/gcc/#build-libraries-with-fp…
Исправлена ошибка компоновщика в составе сборки addon-toolchain (safec8—safec10).
https://safecompiler.pages.ispras.ru/changelog/gcc/#fix-relocation-offset
Отключена динамическая перестановка функций для уровней слабее -Safe1 в
сборке addon-toolchain (safec8—safec10).
https://safecompiler.pages.ispras.ru/changelog/gcc/#disable-faslr-below-saf…
Исправлено поведение безусловной линковки с libubsan при использовании
-Safe1 для freestanding программ.
https://safecompiler.pages.ispras.ru/changelog/gcc/#fix-link-with-ubsan-for…
Исправлена внутренняя ошибка компилятора при использовании опций
-fadd-loc-var и -floc-var-per (-Safe1 -fno-dynamic-func-reorder).
https://safecompiler.pages.ispras.ru/changelog/gcc/#support-unknown-frame-s…
В -Safe[1..3] теперь включается -D_FORTIFY_SOURCE=3 вместо
-D_FORTIFY_SOURCE=2 для safec12 и более новых.
https://safecompiler.pages.ispras.ru/changelog/gcc/#enable-fortify-source-3
Исправлена ошибка, из-за которой не работало зануление
неинициализированных локальных переменных для языка C++
(safec8—safec11).
https://safecompiler.pages.ispras.ru/changelog/gcc/#port-finit-local-vars-t…
В новый год — с новым компилятором! С наступающими праздниками!