17.04.2024

Выпуск стандартной Си-библиотеки Musl 1.2.5

После 10 месяцев разработки представлен релиз стандартной Си-библиотеки Musl 1.2.5, предоставляющей реализацию libc, которая подходит для применения как на стационарных ПК и серверах, так и на мобильных системах, сочетая полноценную поддержку стандартов (как в Glibc) с небольшим размером, низким потреблением ресурсов и высокой производительностью (как в uClibc, dietlibc и Android Bionic). Имеется поддержка всех обязательных интерфейсов C99 и POSIX 2008, а также частично C11 и набор расширений для многопоточного программирования (POSIX threads), управления памятью и работы с локалями. Код Musl поставляется под свободной лицензией MIT.

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

  • Добавлена функция statx(), которая отличается от fstatat64 наличием дополнительного флагового аргумента. В случае, если ядро не поддерживает системный вызов statx, возвращающего расширенную информацию о файле, включая время создания файла и специфичные для файловых систем флаги, осуществляется откат на использованием системного вызова fstatat.
  • Добавлены функции preadv2() и pwritev2(), предоставляющие обвязки над одноимёнными системными вызовами ядра Linux. От preadv() и pwritev() новые функции отличаются наличием ещё одного аргумента для передачи ядру дополнительных флагов, таких как RWF_SYNC (сброс данных и метаданных из кэша на носитель после выполнения операции) и RWF_DSYNC (принудительный сброс на носитель только данных).
  • Добавлена поддержка архитектур Loongarch64 и Riscv32.
  • Реализация функции clone() доведена до состояния, пригодного к использованию.
  • В функции statvfs() обеспечено возвращение результата с типом f_type.
  • Для систем Riscv64 добавлена поддержка механизма TLSDESC (Thread-Local Storage Descriptor).
  • В DNS-резолвере реализована обработка ответов с длинными последовательностями CNAME. Решена проблема, из-за которой отбрасывались некоторые большие ответы, передаваемые через TCP.
  • В интерфейсах mntent появилась поддержка экранирования пробелов в файловых путях и опциях.
  • В snprintf и swprintf обеспечена корректная обработка ситуации в случае обработки чисел, размером больше INT_MAX. Улучшено соответствие стандарту функций семейства printf.

Источник: https://www.opennet.ru/opennews/art.shtml?num=60702 Источник.