Nakon dvije godine razvoja, predstavljen je izdanje standardne C biblioteke Musl 1.2.6, koja pruža implementaciju libc pogodnu za primjenu na stacionarnim računalima i poslužiteljima, kao i na mobilnim sustavima, kombinirajući punu podršku standardima (kao u Glibc) s malom veličinom, niskom potrošnjom resursa i visokom izvedbom (kao u uClibc, dietlibc i Android Bionic). Ima podršku za sve obavezne sučelja C99 i POSIX 2008, kao i djelomično C11 i skup proširenja za višedretveno programiranje (POSIX niti), upravljanje memorijom i rad s lokalima. Kod Musl isporučuje se pod slobodnom MIT licencom.
Glavne promjene:
- Implementirana je funkcija posix_getdents, koja se pojavila u standardu POSIX-2024. Funkcija čita sadržaj direktorija povezanog s otvorenim deskriptorom datoteke i stavlja informacije o poddirektorijima i datotekama u strukture posix_dent uz mogućnost ograničenja maksimalne veličine.
- Dodana je specifična za Linux funkcija renameat2, koja pruža sredstva za atomske zamjene imena dviju datoteka (prva datoteka se preimenuje u drugu, a druga u prvu). Funkcija renameat2 razlikuje se od renameat po dodatnom polju zastavice — bez postavljanja zastavice ponašanje renameat2 je potpuno identično renameat, dok uz označenu zastavicu RENAME_NOREPLACE operacija preimenovanja ne dovodi do zamjene već postojeće datoteke.
- Za sustave Loongarch64 dodana je podrška za mehanizam TLSDESC (Thread-Local Storage Descriptor) za učinkovit pristup varijablama u lokalnom skladištu niti.
- Uz pomoć vDSO optimizirana je funkcija clock_gettime na arhitekturama riscv32, riscv64, powerpc, powerpc64 i s390x. vDSO (virtual dynamic shared object) omogućava premještanje obraditelja sistemskog poziva iz jezgre u korisnički prostor i izbjegavanje prebacivanja konteksta.
- Za određivanje mogućnosti CPU-a u runtime kompajlerima, simbol __getauxval preveden je u javni ABI.
- Uklonjena je ranjivost (CVE-2025-26519) koja dovodi do preljeva bafera prilikom konverzije posebno formatiranog teksta iz kodiranja EUC-KR u UTF-8 pomoću funkcije iconv(). Raniji problem otkriven je više od godinu dana i do izdavanja ispravljen je instalacijom patcha.
- Rješeni su problemi s kompatibilnošću u funkcijama initgroups, getusershell, exit, atexit, strerror, isatty, hasmntopt i vdso, kao i u zaglavnim datotekama sched.h i shadow.h.
- Poboljšana usklađenost s specifikacijama u funkcijama pwrite (riješen problem s O_APPEND), mbnrtowcs (uzeti u obzir zahtjevi POSIX-2024), strptim (uzeti u obzir zahtjevi POSIX-2024e), inet_ntop (osigurana usklađenost s RFC 5952).
Izvor: opennet.ru
