Po dvou letech vývoje byla vydána standardní knihovna jazyka C Musl 1.2.6, která nabízí implementaci knihovny libc vhodnou pro použití jak na stolních počítačích a serverech, tak i na mobilních systémech. Kombinuje plnou podporu standardů (jako v Glibc) s malou velikostí, nízkou spotřebou zdrojů a vysokým výkonem (jako v uClibc, dietlibc a...). Android Bionic). Podporuje všechna požadovaná rozhraní C99 a POSIX 2008, částečnou podporu C11 a sadu rozšíření pro vícevláknové programování (vlákna POSIX), správu paměti a podporu locale. Kód Musl je vydán pod bezplatnou licencí MIT.
Hlavní změny:
- Byla implementována funkce posix_getdents, zavedená ve standardu POSIX-2024. Tato funkce čte obsah adresáře přidruženého k otevřenému deskriptoru souboru a umisťuje informace o podadresářích a souborech do struktur posix_dent s možností omezení maximální velikosti.
- Přidáno konkrétně k Linux Funkce renameat2 umožňuje atomicky nahradit názvy dvou souborů (první soubor je přejmenován na druhý a druhý soubor na první). Nová funkce se od funkce renameat liší přidáním dalšího pole s příznakem: bez tohoto příznaku se funkce renameat2 chová přesně jako funkce renameat a pokud je zadán příznak RENAME_NOREPLACE, operace přejmenování nenahradí existující soubor.
- Pro systémy Loongarch64 byla přidána podpora mechanismu TLSDESC (Thread-Local Storage Descriptor) pro efektivní přístup k proměnným v úložišti lokálním pro vlákna.
- Funkce clock_gettime byla optimalizována na architekturách riscv32, riscv64, powerpc, powerpc64 a s390x pomocí vDSO. vDSO (virtuální dynamický sdílený objekt) umožňuje přesunout obslužnou rutinu systémových volání z jádra do uživatelského prostoru, čímž se zabrání přepínání kontextu.
- Pro detekci možností CPU v běhových kompilátorech byl symbol __getauxval přeložen do veřejného ABI.
- Byla opravena zranitelnost (CVE-2025-26519), která vedla k přetečení vyrovnávací paměti při převodu speciálně vytvořeného textu z kódování EUC-KR do UTF-8 pomocí funkce iconv(). Zranitelnost byla objevena před více než rokem a byla opravena před vydáním.
- Vyřešeny problémy s kompatibilitou funkcí initgroups, getusershell, exit, atexit, strerror, isatty, hasmntopt a vdso a také hlavičkových souborů sched.h a shadow.h.
- Vylepšená shoda se specifikací v pwrite (vyřešen problém s O_APPEND), mbnrtowcs (zohledněna shoda s POSIX-2024), strptim (zohledněna shoda s POSIX-2024e) a inet_ntop (dosažena shoda s RFC 5952).
Zdroj: opennet.ru
