The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск стандартных Си-библиотек Glibc 2.43 и newlib 4.6.0

24.01.2026 23:32 (MSK)

После шести месяцев разработки опубликован релиз системной библиотеки GNU C Library 2.43 (glibc), которая полностью следует требованиям стандартов ISO C23 и POSIX.1-2024. В создании нового выпуска приняли участие 69 разработчиков.

Из реализованных в Glibc 2.43 улучшений можно отметить:

  • Добавлена экспериментальная возможность сборки компилятором Clang, которая пока доступна только для платформ aarch64-linux-gnu и x86_64-linux-gnu при использовании runtime, совместимого с libgcc. Для сборки Glibc требуется как минимум версия Clang 18.
  • Для систем Linux добавлена функция mseal(), позволяющая процессам выставлять блокировку на изменение определённых частей своего адресного пространства.
  • Для систем Linux добавлена функция openat2(), в отличие от функции openat() поддерживающая набор дополнительных флагов для ограничения разрешения файлового пути (запрет пересечения точек монтирования, символических ссылок, magic-ссылок (/proc/PID/fd), компонентов "../").
  • Добавлены функции free_sized, free_aligned_sized, memset_explicit и memalignment, появившиеся в стандарте C23.
  • В соответствии со стандартом C23 вызов assert определён как макрос с переменным числом аргументов, поддерживающий выражения с запятой внутри инициализатора.
  • В соответствии со стандартом C23 функции bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr и wmemchr, возвращающие указатели на входные массивы, переопределены как макросы, возвращающие указатель на тип с квалификатором "const", если входной аргумент является указателем на тип с квалификатором "const".
  • В заголовочный файл math.h добавлены определения типов long_double_t, _Float32_t, _Float64_t и _Float128_t, появившихся в стандарте C23.
  • Добавлены опциональные режимы исчисления времени TIME_MONOTONIC (постоянно увеличивающееся время, не зависящее от изменения системных часов), TIME_ACTIVE и TIME_THREAD_ACTIVE (время активного выполнения процесса или потока) для использования в функции timespec_get.
  • Из проекта CORE-MATH перенесены оптимизированные варианты математических функций acosh, asinh, atanh, erf, erfc, lgamma и tgamma.
  • Добавлены оптимизированные реализации функций fma, fmaf, remainder, remaindef, frexpf, frexp, frexpl (binary128) и frexpl (intel96).
  • Повышена производительность математических функций acosf, acoshf, asinhf, atan2f, atanhf, coshf, fmodf, lgammaf/lgammaf_r, log10f, remainderf, sinhf, sqrtf, tgammaf, y0/j0, y1/j1 и yn/jn, благодаря удалению кода обработки ошибок SVID (вызов пользовательской функции matherr при ошибке) для новых сборок (для сохранения совместимости с уже собранными программами они оставлены в режиме compat).
  • На системах x86 добавлена поддержка процессоров Intel Nova Lake и Wildcat Lake.
  • На системах AArch64 в функции malloc по умолчанию включена поддержка больших страниц памяти (transparent huge pages) размером 2MB (параметр ibc.malloc.hugetlb теперь выставлен в 1). В функции clone() реализовано отключение состояния ZA (Z-Array) на CPU с поддержкой расширения SME (Scalable Matrix Extension).
  • Для систем AArch64, поддерживающих расширение BTI (Branch Target Identification), добавлена настройка glibc.cpu.aarch64_bti, позволяющая принудительно активировать BTI для всех исполняемых файлов и библиотек. BTI обеспечивает блокирование переходов на произвольные участки кода для противодействия созданию гаджетов в эксплоитах, использующих приёмы возвратно-ориентированного программирования.
  • На системах AArch64, поддерживающих одно из расширений для защиты ветвления (Branch Target Identification или Guarded Control Stack), разрешено использование переменной окружения "LD_DEBUG=security" для вывода компоновщиком предупреждений при загрузке исполняемых файлов и библиотек, не поддерживающих данные расширения.
  • Для систем AArch64 добавлены векторные варианты функций exp2m1, exp10m1, log10p1, log2p1 и rsqrt.
  • Для архитектуры RISC-V добавлена оптимизированная реализация функции memset, использующая расширение RVV (RISC-V Vector).
  • В тестовом наборе значительно расширена проверка многопоточности и функций scanf, strerror и strsignal.
  • Данные кодировок, информация о типах символов и таблицы транслитерации обновлены для поддержки спецификации Unicode 17.0.0.
  • В реализации функциональности LD_PROFILE прекращено использование каталога по умолчанию (/var/tmp) для записи данных профилирования. Для сохранения подобных данных теперь требуется явное определение для них каталога через переменную окружения LD_PROFILE_OUTPUT.
  • Устранены уязвимости:



Кроме того, после года разработки проект Cygwin опубликовал выпуск стандартной Си-библиотеки newlib 4.6.0, развиваемой инженерами из компании Red Hat. Библиотека нацелена на предоставление компактной реализации стандартной Си-библиотеки (libc), пригодной для использования на встраиваемых системах c небольшим объёмом постоянного хранилища и оперативной памяти. Код проекта написан на языке Си и распространяется под лицензией LGPLv2.

В новой версии newlib:

  • Расширена поддержка спецификации POSIX.1-2024.
  • Повышена производительность функций memcpy, mempcpy и memmove.
  • Добавлена опция "--enable-newlib-hw-misaligned-access".
  • Проведена оптимизация архитектуры RISC-V функций серии mem* и str*.
  • Переработан код обработки локалей, который избавлен от глобальной переменной global_locale_string в пользу отдельных переменных locale_string для каждого объекта локали с типом locale_t.
  • Добавлена поддержка новой платформы m68k-atari-elf.
  • Из FreeBSD-библиотеки gdtoa перенесён код strtorQ.c, который задействован для реализации поддержки 128-разрядного типа "long double" в функции strtold.
  • Данные кодировок обновлены до Unicode 17.0.


  1. Главная ссылка к новости (https://sourceware.org/piperma...)
  2. OpenNews: Выпуск системной библиотеки Glibc 2.42 и набора утилит GNU Binutils 2.45
  3. OpenNews: Уязвимость в Glibc, затрагивающая статически собранные suid-файлы с dlopen
  4. OpenNews: Выпуск стандартной Си-библиотеки PicoLibc 1.8.9
  5. OpenNews: Выпуск стандартной Си-библиотеки Musl 1.2.5
  6. OpenNews: Опубликована стандартная Си-библиотека newlib 4.5.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64670-glibc
Ключевые слова: glibc, newlib
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (7) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 00:12, 25/01/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     

  • 1.4, Аноним (4), 00:25, 25/01/2026 [ответить]  
  • +/
    >Добавлена экспериментальная возможность сборки компилятором Clang, которая пока доступна только для платформ aarch64-linux-gnu и x86_64-linux-gnu при использовании runtime, совместимого с libgcc. Для сборки Glibc требуется как минимум версия Clang 18.

    Ну и где настоящие сишники, когда они так нужны? Кто там рассказывал, что у си несколько компиляторов?

     
     
  • 2.6, Аноним (6), 00:48, 25/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Они заняты фиксами CVE и добавлением новых.
     
  • 2.8, Аноним (8), 01:13, 25/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Мифология Си: Любой может написать компилятор, потому что у Си есть славный Стандарт!

    Reality check:

    1. Стандарт платный. Странная особенность для вроде бы "открытого" "общедоступного" языка.

    2. Стандарт состоит из: а) оглавления, б) undefined behavior. Больше там ничего нет. Допустим, в оглавлении написано: "Глава о том, как складывать инты .... Страница 1234". Переходим на эту страницу и читаем: "Складывайте как хотите. int + int это undefined behavior."

    3. Гигантское количество проектов собирается ровно одним компилятором. Поддержка второго компилятора там всегда экспериментальная. Например, хромиум официально собирается только шлангом. Для поддержки GCC всегда нужны патчи. Всегда! За пруфами идите в репу Gentoo, в котором эти патчи обновляются каждый (!) релиз хромиума.

     

  • 1.5, Аноним (5), 00:26, 25/01/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 1.7, хрюк (?), 01:04, 25/01/2026 [ответить]  
  • +/
    Переписать на Раст!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру