Выпуск системной библиотеки GNU C Library 2.42 (glibc) и релиз набора утилит GNU Binutils 2.45
28 июля 2025 года состоялся релиз системной библиотеки GNU C Library 2.42 (glibc). Это решение полностью следует требованиям стандартов ISO C23 и POSIX.1–2024. В создании нового выпуска glibc приняли участие 70 разработчиков. Прошлая стабильная версия проекта вышла полгода назад.
По информации OpenNET, основные изменения и доработки в Glibc 2.42:
в функцию pthread_create добавлена поддержка легковесных сторожевых страниц для защиты стека (stack guard page), обращение к которым вызывает исключение и аварийное завершение процесса (SIGSEGV). Реализация основана на появившемся в системном вызове madvise флаге MADV_GUARD_INSTALL, поддерживаемом начиная с ядра Linux 6.13. По сравнению с маппингом в режиме PROT_NONE сторожевые страницы позволяют более эффективно блокировать выполнение кода за пределами выделенной области памяти, так как их создание не требует выделения новой области виртуальной памяти;
добавлены и отражены в заголовочном файле math.h новые функции возведения в степень и вычислений корней compoundn, pown и powr, rootn и rsqrt, определённые в стандарте ISO C23. Варианты функций реализованы для типов float, double, long double, FloatN и FloatNx, а также для обобщённого типа из tgmath.h;
на платформе Linux реализована функция pthread_gettid_np, которая как и функция gettid() возвращает уникальный идентификатор потока, но отличается расширенной проверкой ошибок (при возникновении неопределённого поведения процесс завершается);
добавлены функции для вычисления абсолютных значений, работающие с беззнаковыми типами: uabs, ulabs, ullabs и uimaxabs. Данные функции войдут в состав будущего стандарта C;
на платформе Linux в программном интерфейсе termios.h реализована поддержка произвольных значений скорости передачи. Тип
Читать на habr.com