Релиз набора компиляторов GCC 12
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
После года разработки опубликован релиз свободного набора компиляторов GCC 12.1, первый значительный выпуск в новой ветке GCC 12.x. В соответствии с новой схемой нумерации выпусков, версия 12.0 использовалась в процессе разработки, а незадолго до выхода GCC 12.1 уже ответвилась ветка GCC 13.0, на базе которой будет сформирован следующий значительный релиз GCC 13.1. 23 мая проект будет отмечать 35 лет с момента формирования первого выпуска GCC.
Основные изменения:
- Добавлена поддержка отладочного формата CTF (Compact Type Format), обеспечивающего компактное хранение сведений о Си-типах, связях между функциями и отладочных символах. При встраивании в ELF-объекты формат позволяет использовать таблицы символов EFL для избежания дублирования данных.
- Объявлена устаревшей поддержка формата хранения отладочной информации "STABS", созданного в 1980-е годы.
- Продолжена работа по расширению поддержки будущих стандартов C2X и C++23 для языков C и C++.
- В стандартной библиотеке C++ улучшена поддержка экспериментальных разделов стандартов C++20 и C++23.
- Во фронтэнде для языка фортран предоставлена полная поддержка спецификации TS 29113, описывающей возможности по обеспечению переносимости между кодом на языках Fortran и C.
- Добавлена поддержка расширения __builtin_shufflevector(vec1, vec2, index1, index2, ...), ранее добавленного в Clang и предлагающего единый вызов для выполнения общих векторных операций перестановки и перетасовки.
- При использовании уровня оптимизации "-O2" по умолчанию включено применение векторизации (включены режимы -ftree-vectorize и -fvect-cost-model=very-cheap). Модель "very-cheap" допускает векторизацию только если векторный код может полностью заменить векторизируемый скалярный код.
- Добавлен режим "-ftrivial-auto-var-init" включающий явную инициализацию переменных в стеке для отслеживания проблем и блокирования уязвимостей, связанных с использованием неинициализированных переменных.
- Для языков C и C++ добавлена встроенная функция
__builtin_dynamic_object_size для определения размера объекта, совместимая с аналогичной функцией из Clang.
- В бэкенд генерации кода для архитектуры x86 добавлена поддержка инструкций AVX512-FP16 для типа _Float16.
- Для архитектуры x86 добавлена защита от уязвимостей в процессорах, вызванных спекулятивным выполнением инструкций после операций безусловного прямого перехода. Проблема возникает из-за упреждающей обработки инструкций, следующих в памяти сразу за командой перехода (SLS, Straight Line Speculation). Для включения защиты предложена опция "-mharden-sls".
- В экспериментальный статический анализатор добавлено определение использования неинициализированных переменных.
- В бэкенд для генерации байткода BPF добавлена поддержка механизма CO-RE (Compile Once - Run Everywhere), позволяющего собирать код eBPF-программ для ядра Linux только один раз и использовать специальный универсальный загрузчик, адаптирующий загружаемую программу к текущему ядру и типам BTF (BPF Type Format). CO-RE решает проблему с переносимостью скомпилированных eBPF-программ, которые ранее могли использоваться только в той версии ядра, для которой были собраны, так как позиция элементов в структурах данных меняется от версии к версии.
- В бэкенде для архитектуры RISC-V добавлена поддержка новых расширений архитектуры набора команд zba, zbb, zbc и zbs, а также ISA-расширений для векторных и скалярных криптографических операций. По умолчанию обеспечена поддержка спецификации RISC-V ISA 20191213. Добавлен флаг -mtune=thead-c906, включающий оптимизации для ядер T-HEAD c906.
- Добавлен новый режим проверки "-fsanitize=shadow-call-stack" (ShadowCallStack), который пока доступен только для архитектуры AArch64 и работает при сборке кода с опцией "-ffixed-r18". Режим обеспечивает защиту от перезаписи адреса возврата из функции в случае переполнения буфера в стеке. Суть защиты в сохранении после передачи управления функции адреса возврата в отдельном "теневом" стеке и извлечении данного адреса перед выходом из функции.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://gcc.gnu.org/pipermail/...)
- OpenNews: Релиз набора компиляторов GCC 11
- OpenNews: Проект GCC разрешил приём изменений без передачи Фонду СПО прав на код
- OpenNews: Релиз набора компиляторов GCC 10
- OpenNews: Проект по добавлению в GCC поддержки распараллеливания процесса компиляции
- OpenNews: Релиз набора компиляторов LLVM 13.0
Похожие новости:
- Опубликован HPVM 2.0, компилятор для CPU, GPU, FPGA и аппаратных ускорителей
- В ядре Linux 5.18 планируют разрешить использование стандарта языка Си C11
- Опубликован набор патчей, ускоряющих сборку ядра Linux на 50-80%
- Выпуск утилиты GNU cflow 1.7
- Доступен Emscripten 3.0, компилятор из C/C++ в WebAssembly
- Предложен компилятор исходных текстов на языке TypeScript в машинный код
- cproc - новый компактный компилятор для языка Си
- [Высокая производительность, Компиляторы, Процессоры] DSP-процессоры: назначение и особенности
- [Настройка Linux, C++, C] Находим и устраняем уязвимости бинарных файлов в Linux — с утилитой checksec и компилятором gcc (перевод)
- Проект GCC разрешил приём изменений без передачи Фонду СПО прав на код
Теги для поиска: #_gcc, #_compile
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 03:30
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
После года разработки опубликован релиз свободного набора компиляторов GCC 12.1, первый значительный выпуск в новой ветке GCC 12.x. В соответствии с новой схемой нумерации выпусков, версия 12.0 использовалась в процессе разработки, а незадолго до выхода GCC 12.1 уже ответвилась ветка GCC 13.0, на базе которой будет сформирован следующий значительный релиз GCC 13.1. 23 мая проект будет отмечать 35 лет с момента формирования первого выпуска GCC. Основные изменения:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 03:30
Часовой пояс: UTC + 5