Na twee jaar ontwikkeling is de release van de standaard C-bibliotheek Musl 1.2.6 gepresenteerd, die een implementatie van libc biedt die geschikt is voor gebruik op zowel desktop-pc's en servers als op mobiele systemen. Het combineert volledige ondersteuning van normen (zoals in Glibc) met een klein formaat, laag energieverbruik en hoge prestaties (zoals in uClibc, dietlibc en Android Bionic). Er is ondersteuning voor alle verplichte interfaces van C99 en POSIX 2008, evenals gedeeltelijk C11 en een set uitbreidingen voor multithreading (POSIX-draaden), geheugenbeheer en locale verwerking. De Musl-code wordt geleverd onder de vrije MIT-licentie.
Belangrijkste wijzigingen:
- De functie posix_getdents is geĆÆmplementeerd, die in de standaard POSIX-2024 is geĆÆntroduceerd. De functie leest de inhoud van de directory die aan een geopende bestandsdescriptor is gekoppeld en plaatst informatie over subdirectories en bestanden in posix_dent-structuren, met de mogelijkheid om de maximale grootte te beperken.
- Er is een Linux-specifieke functie renameat2 toegevoegd, die middelen biedt voor het atomair vervangen van de namen van twee bestanden (het eerste bestand wordt hernoemd naar het tweede en het tweede naar het eerste). De nieuwe functie verschilt van renameat door de aanwezigheid van een extra vlaggenveld ā zonder vlaggedrag is renameat2 volledig vergelijkbaar met renameat, en bij het opgeven van de vlag RENAME_NOREPLACE resulteert de hernoemoperatie niet in de vervangingen van een al bestaand bestand.
- Voor Loongarch64-systemen is ondersteuning voor het TLSDESC (Thread-Local Storage Descriptor) mechanisme toegevoegd voor efficiƫnte toegang tot variabelen in de lokale opslag van de thread.
- Met behulp van vDSO is de werking van de functie clock_gettime geoptimaliseerd op de architecturen riscv32, riscv64, powerpc, powerpc64 en s390x. vDSO (virtual dynamic shared object) maakt het mogelijk om de systeemaanroepverwerker uit de kernel naar de gebruikersruimte te verplaatsen en contextwisselingen te vermijden.
- Voor het bepalen van de mogelijkheden van de CPU in runtime van de compilers is het symbool __getauxval omgezet in de publieke ABI.
- Een kwetsbaarheid (CVE-2025-26519) die leidt tot een buffer overflow bij de conversie van speciaal geformatteerde tekst van EUC-KR naar UTF-8 met behulp van de functie iconv() is verholpen. De kwetsbaarheid is meer dan een jaar geleden ontdekt en is voor de release verholpen via het toepassen van een patch.
- Problemen met compatibiliteit in de functies initgroups, getusershell, exit, atexit, strerror, isatty, hasmntopt en vdso, evenals in de headerbestanden sched.h en shadow.h zijn opgelost.
- Verbeterde naleving van specificaties in de functies pwrite (probleem met O_APPEND opgelost), mbnrtowcs (eisen van POSIX-2024 in acht genomen), strptim (eisen van POSIX-2024e in acht genomen), inet_ntop (naleving van RFC 5952 gegarandeerd).
Bron: opennet.ru
