Dopo 10 mesi di sviluppo, è stata rilasciata la versione standard della libreria C Musl 1.2.5, che fornisce un'implementazione di libc adatta per l'uso sia su PC fissi e server che su sistemi mobili, combinando un supporto completo per gli standard (come in Glibc) con dimensioni ridotte, basso consumo di risorse e alta prestazione (come in uClibc, dietlibc e Android Bionic). È supportata la totalità delle interfacce richieste da C99 e POSIX 2008, oltre a un supporto parziale per C11 e un insieme di estensioni per la programmazione multithreading (POSIX threads), gestione della memoria e lavorazione con le localizzazioni. Il codice Musl è fornito con licenza libera MIT.
Variazioni principali:
- È stata aggiunta la funzione statx(), che si differenzia da fstatat64 per la presenza di un argomento flag aggiuntivo. Nel caso in cui il kernel non supporti la chiamata di sistema statx, che restituisce informazioni dettagliate sul file, incluso il tempo di creazione del file e flag specifici per i file system, si ricorre alla chiamata di sistema fstatat.
- Sono state aggiunte le funzioni preadv2() e pwritev2(), che forniscono un'interfaccia per le corrispondenti chiamate di sistema del kernel Linux. Le nuove funzioni si differenziano da preadv() e pwritev() per la presenza di un ulteriore argomento per passare al kernel flag aggiuntivi, come RWF_SYNC (scrittura di dati e metadati dalla cache sul supporto dopo l'operazione) e RWF_DSYNC (forzatura della scrittura sul supporto solo dei dati).
- È stato aggiunto il supporto per le architetture Loongarch64 e Riscv32.
- L'implementazione della funzione clone() è stata portata a uno stato utilizzabile.
- La funzione statvfs() ora restituisce un risultato con il tipo f_type.
- Per i sistemi Riscv64 è stato aggiunto il supporto per il meccanismo TLSDESC (Thread-Local Storage Descriptor).
- Nel risolutore DNS è stata implementata la gestione delle risposte con sequenze CNAME lunghe. È stato risolto un problema che faceva scartare alcune risposte grandi trasmesse tramite TCP.
- Negli interfaccia mntent è stato aggiunto il supporto per l'escaping degli spazi nei percorsi file e nelle opzioni.
- In snprintf e swprintf è stata garantita una corretta gestione dei numeri superiori a INT_MAX. È stato migliorato il rispetto degli standard per le funzioni della famiglia printf.
Fonte: opennet.ru
