Efter 10 måneders udvikling præsenteres udgivelsen af standard C-biblioteket Musl 1.2.5, der giver en libc-implementering, der er velegnet til brug på både stationære pc'er og servere og på mobile systemer, der kombinerer fuld understøttelse af standarder (som i Glibc ) med en lille størrelse, lavt ressourceforbrug og høj ydeevne (som i uClibc, dietlibc og Android Bionic). Der er understøttelse af alle nødvendige C99- og POSIX 2008-grænseflader, såvel som delvist C11 og et sæt udvidelser til multi-threaded programmering (POSIX-tråde), hukommelseshåndtering og arbejde med lokaliteter. Musl-koden leveres under den gratis MIT-licens.
Vigtigste ændringer:
- Tilføjet statx() funktion, som adskiller sig fra fstatat64 ved at have et ekstra flag-argument. Hvis kernen ikke understøtter statx-systemkaldet, som returnerer udvidet filinformation, inklusive filoprettelsestid og filsystemspecifikke flag, falder den tilbage til at bruge fstatat-systemkaldet.
- Tilføjede funktioner preadv2() og pwritev2(), som giver indpakninger over Linux-kernesystemkaldene af samme navn. De nye funktioner adskiller sig fra preadv() og pwritev() ved tilstedeværelsen af endnu et argument for at sende yderligere flag til kernen, såsom RWF_SYNC (flush data og metadata fra cachen til mediet efter operationen er fuldført) og RWF_DSYNC ( tvungen skylning af kun data til mediet).
- Tilføjet understøttelse af Loongarch64 og Riscv32 arkitekturer.
- Implementeringen af clone()-funktionen er blevet bragt til en brugbar tilstand.
- Statvfs()-funktionen sikrer, at et resultat med typen f_type returneres.
- For Riscv64-systemer er understøttelse af TLSDESC-mekanismen (Thread-Local Storage Descriptor) blevet tilføjet.
- DNS-resolveren implementerer behandling af svar med lange CNAME-sekvenser. Løste et problem, der gjorde, at nogle store svar sendt over TCP blev kasseret.
- Mntent-grænsefladerne har nu understøttelse for at undslippe mellemrum i filstier og muligheder.
- Snprintf og swprintf giver korrekt håndtering af situationen ved behandling af tal større end INT_MAX. Forbedret overensstemmelse med printf-familien af funktioner.
Kilde: opennet.ru