След 10 месеца разработка, Musl 1.2.5 представя релиз на стандартната C-библиотека, предлагаща реализация на libc, подходяща както за настолни компютри и сървъри, така и за мобилни системи. Тя съчетава пълна поддръжка на стандартите (както в Glibc) с малък размер, ниска консумация на ресурси и висока производителност (както в uClibc, dietlibc и Android Bionic). Поддържат се всички задължителни интерфейси C99 и POSIX 2008, както и частично C11 и набор от разширения за многопоточност (POSIX threads), управление на паметта и работа с локали. Кодът на Musl е предоставен под свободна лицензия MIT.
Основни промени:
- Добавена е функцията statx(), която се различава от fstatat64 с допълнителен флагов аргумент. В случай, че ядрото не поддържа системния повик statx, който връща разширена информация за файловете, включително времето на създаване на файла и специфични за файловата система флагове, се извършва откат към използването на системния повик fstatat.
- Добавени са функciите 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.
Източник: opennet.ru
