Po 10 měsících vývoje byl představen vydání standardní C knihovny Musl 1.2.5, která poskytuje implementaci libc, vhodnou pro použití jak na stolních počítačích a serverech, tak na mobilních systémech. Kombinuje plnou podporu standardů (jak v Glibc) s malou velikostí, nízkou spotřebou zdrojů a vysokým výkonem (jak v uClibc, dietlibc a Android Bionic). Podporuje všechny povinné rozhraní C99 a POSIX 2008, a také částečně C11 a sadu rozšíření pro vícetréninkové programování (POSIX vlákna), správu paměti a práci s lokalitami. Kód Musl je dodáván pod svobodnou licencí MIT.
Hlavní změny:
- Přidána funkce statx(), která se liší od fstatat64 přítomností dalšího flagového argumentu. V případě, že jádro nepodporuje systémový volání statx, které vrací rozšířené informace o souborech, včetně času vytvoření souboru a specifických pro souborové systémy flagů, dojde k návratu na použití systémového volání fstatat.
- Přidány funkce preadv2() a pwritev2(), které poskytují obalové funkce nad shodnými systémovými voláními jádra Linux. Od preadv() a pwritev() se nové funkce liší dalším argumentem, který předává jádru dodatečné flagy, jako RWF_SYNC (vyprázdnění dat a metadat z cache na médium po provedení operace) a RWF_DSYNC (nucené vyprázdnění na médium pouze dat).
- Byla přidána podpora architektur Loongarch64 a Riscv32.
- Implementace funkce clone() byla uvedena do stavu připraveného k použití.
- Ve funkci statvfs() bylo zajištěno vracení výsledku s typem f_type.
- Pro systémy Riscv64 byla přidána podpora mechanismu TLSDESC (Thread-Local Storage Descriptor).
- V DNS resolveru byla implementována zpracování odpovědí s dlouhými posloupnostmi CNAME. Řešen problém, kvůli němuž byly některé velké odpovědi přenášené přes TCP odmítány.
- V rozhraních mntent byla přidána podpora pro escapeování mezer ve filiálních cestách a možnostech.
- Ve snprintf a swprintf byla zajištěna správná obsluha v případě zpracování čísel větších než INT_MAX. Zlepšena shoda s normou funkcí rodiny printf.
Zdroj: opennet.ru
