Pärast 10 kuu arendust on välja antud standardse C-teegi Musl 1.2.5 versioon, mis pakub libc rakendust, mis sobib kasutamiseks nii statsionaarsetes arvutites ja serverites kui ka mobiilsüsteemides, kombineerides täieliku standardite toe (nagu Glibcis) väikese suuruse, madala ressursikasutuse ja kõrge jõudlusega (nagu uClibc, dietlibc ja Android Bionic). Toetatakse kõiki C99 ja POSIX 2008 kohustuslikke liideseid, samuti osaliselt C11 ja mitme lähenemise laiendite kogumit (POSIX threads), mäluhaldust ja lokaliseerimist. Musli kood on saadaval MITi avatud litsentsi alusel.
Peamised muudatused:
- Lisatud funktsioon statx(), mis erineb fstatat64-st täiendava lipuargumendi poolest. Kui tuum ei toeta süsteemi väljakutset statx, mis tagastab failide kohta laiendatud teavet, sealhulgas faili loomise aega ja failisüsteemi spetsiifilisi lippusid, toimub tagasipöördumine süsteemi väljakutse fstatat kasutamisele.
- Lisatud funktsioonid preadv2() ja pwritev2(), mis pakuvad ühendusi Linuxi tuuma sama nimega süsteemi väljakutsetega. Eristuvad preadv() ja pwritev() uued funktsioonid veel ühe argumendi olemasoluga, et edastada tuumale täiendavaid lippe, nagu RWF_SYNC (andmete ja metaandmete vahemälust seadmesse kirjutamine pärast operatsiooni sooritamist) ja RWF_DSYNC (ainult andmete sundkiri seadmesse).
- Lisatud tugi arhitektuuridele Loongarch64 ja Riscv32.
- Funktsiooni clone() rakendamine on viidud kasutusvaldkonda.
- Funktsioonis statvfs() tagastatakse tulemus f_type tüübina.
- Riscv64 süsteemidele lisatud toetus TLSDESC (Thread-Local Storage Descriptor) mehhanismile.
- DNS-resolveris on rakendatud pika CNAME-järjestuse vastuste töötlemine. Lahendatud probleem, mille tõttu välistati mõned suured TCP kaudu edastatud vastused.
- mntent liideses on lisatud toe tugi failitekstis ja valikutes ruumide eskaleerimisele.
- snprintf ja swprintf funktsioonides on tagatud korrektne käsitsemine olukordades, kus numbrite suurus ületab INT_MAX. Parandatud printf-funktsioonide standardiga vastavust.
Allikas: opennet.ru
