glibc 2.44

good-penguin.png

25 июля 2026 года состоялся выпуск GNU C Library 2.44 — новой стабильной версии основной системной библиотеки большинства дистрибутивов GNU/Linux. Glibc предоставляет приложениям стандартные функции для работы с памятью, файлами, процессами, потоками, сетью и системными вызовами. Выпуск продолжает шестимесячный цикл разработки и ориентирован на стандарты ISO C23 и POSIX.1–2024.

Одним из главных новшеств стал файл /etc/tunables.conf, через который администраторы смогут задавать параметры glibc сразу для всей системы. После изменения файла необходимо выполнить ldconfig. Ранее подобные настройки обычно передавались через переменную окружения GLIBC_TUNABLES. Разработчики предупреждают, что формат и расположение нового файла пока не считаются стабильным интерфейсом и в будущих версиях могут измениться.

Основные изменения glibc 2.44:

  • Управление Transparent Huge Pages. Добавлен параметр glibc.elf.thp, позволяющий использовать Transparent Huge Pages для отображения доступных только для чтения сегментов. Скорректировано и применение THP в распределителе памяти malloc.
  • Улучшение математических функций. Из проекта CORE-MATH перенесены оптимизированные и корректно округляемые реализации cosh, sinh и tanh, а также ряд улучшений для уже существующих функций. Новая реализация cosh с использованием FMA в некоторых сценариях обеспечивает прирост производительности примерно на 35%.
  • Оптимизации для AArch64. Для SVE и AdvSIMD векторизована обработка особых случаев в функциях log, exp, sin, sinh, cosh, asinh, acosh и atanh. Также усилена защита Guarded Control Stack: после включения GCS приложение больше не сможет отключить или изменить отдельные операции теневого стека через prctl.
  • Оптимизации для RISC-V. Реализованы использующие векторное расширение варианты memcpy, memmove, memcmp, strlen, strcmp, strcpy, strncpy, strchr, strrchr и других функций обработки строк и памяти.
  • Поддержка LoongArch32. В библиотеку добавлена начальная поддержка 32-разрядного варианта архитектуры LoongArch.
  • Статические PIE для ARM. Добавлена поддержка статически скомпонованных позиционно-независимых исполняемых файлов для arm-*-linux-gnueabi.
  • Изменения для C++26. Макрос assert стал вариативным и теперь может принимать более сложные выражения, содержащие запятые.
  • Предварительно подготовленный кэш загрузчика. ldconfig получил возможность устанавливать заранее сформированные файлы ld.so.cache.
  • Новая локаль. Добавлена локаль hrx_BR для языка хунсрик, распространённого среди части населения Бразилии.

Одновременно прекращена поддержка 31-разрядной конфигурации s390-linux-gnu. Удалены параметры сборки --enable-memory-tagging и --enable-static-nss: первый управлял экспериментальной реализацией маркировки памяти для AArch64, которая также удалена, а второй фактически не влиял на сборку со времён glibc 2.33.

В glibc 2.44 исправлены три уязвимости. CVE-2026–4437 и CVE-2026–4438 связаны с некорректной обработкой DNS-ответов функциями gethostbyaddr и gethostbyaddr_r. CVE-2026–4046 позволяла вызвать аварийное завершение iconv при обработке специально подготовленных недоверенных данных. Помимо этого устранено несколько десятков ошибок в динамическом загрузчике, malloc, stdio, NSS, обработке локалей и статически скомпонованных программах.

Исходные тексты glibc 2.44 доступны на FTP-серверах проекта GNU. В дальнейшем библиотека должна появиться в новых выпусках дистрибутивов, включая Fedora 45 и Ubuntu 26.10.

>>> Источник

©  Linux.org.ru