Na 10 maanden ontwikkeling wordt de release van de standaard C-bibliotheek Musl 1.2.5 gepresenteerd, die een libc-implementatie biedt die geschikt is voor gebruik op zowel desktop-pc's en servers, als op mobiele systemen, waarbij volledige ondersteuning voor standaarden wordt gecombineerd (zoals in Glibc ) met een klein formaat, laag verbruik van hulpbronnen en hoge prestaties (zoals in uClibc, Dietlibc en Android Bionic). Er is ondersteuning voor alle vereiste C99- en POSIX 2008-interfaces, evenals gedeeltelijk C11 en een reeks uitbreidingen voor multi-threaded programmeren (POSIX-threads), geheugenbeheer en het werken met landinstellingen. De Musl-code wordt geleverd onder de gratis MIT-licentie.
Grote veranderingen:
- Functie statx() toegevoegd, die verschilt van fstatat64 doordat hij een extra vlagargument heeft. Als de kernel de statx-systeemaanroep niet ondersteunt, die uitgebreide bestandsinformatie retourneert, inclusief de aanmaaktijd van bestanden en bestandssysteemspecifieke vlaggen, valt hij terug op het gebruik van de fstatat-systeemaanroep.
- Functies preadv2() en pwritev2() toegevoegd, die wrappers bieden over de gelijknamige Linux-kernelsysteemaanroepen. De nieuwe functies verschillen van preadv() en pwritev() door de aanwezigheid van nog een argument voor het doorgeven van extra vlaggen aan de kernel, zoals RWF_SYNC (gegevens en metagegevens uit de cache naar de media spoelen nadat de bewerking is voltooid) en RWF_DSYNC ( geforceerd doorspoelen van alleen gegevens naar de media).
- Ondersteuning toegevoegd voor Loongarch64- en Riscv32-architecturen.
- De implementatie van de clone()-functie is in een bruikbare staat gebracht.
- De functie statvfs() zorgt ervoor dat een resultaat met het type f_type wordt geretourneerd.
- Voor Riscv64-systemen is ondersteuning voor het TLSDESC-mechanisme (Thread-Local Storage Descriptor) toegevoegd.
- De DNS-resolver implementeert de verwerking van antwoorden met lange CNAME-reeksen. Er is een probleem opgelost waarbij enkele grote reacties die via TCP werden verzonden, werden genegeerd.
- De mntent-interfaces hebben nu ondersteuning voor het ontsnappen van spaties in bestandspaden en opties.
- Snprintf en swprintf zorgen voor een correcte afhandeling van de situatie bij het verwerken van getallen groter dan INT_MAX. Verbeterde naleving van de printf-familie van functies.
Bron: opennet.ru