Después de 10 meses de desarrollo, se presenta la versión estándar de la biblioteca C Musl 1.2.5, que proporciona una implementación de libc apta para su uso tanto en PC y servidores de escritorio como en sistemas móviles, combinando un soporte completo para estándares (como en Glibc) con un tamaño reducido, bajo consumo de recursos y alto rendimiento (como en uClibc, dietlibc y Android Bionic). Hay soporte para todas las interfaces obligatorias de C99 y POSIX 2008, así como parcialmente para C11 y un conjunto de extensiones para programación multihilo (hilos POSIX), gestión de memoria y trabajo con localidades. El código de Musl se distribuye bajo la licencia MIT.
Principales cambios:
- Se ha añadido la función statx(), que se diferencia de fstatat64 por tener un argumento de bandera adicional. En caso de que el núcleo no soporte la llamada al sistema statx, que devuelve información ampliada sobre el archivo, incluyendo el tiempo de creación del archivo y banderas específicas de sistemas de archivos, se retrocederá al uso de la llamada al sistema fstatat.
- Se han añadido las funciones preadv2() y pwritev2(), que proporcionan envolturas sobre las llamadas al sistema homónimas del núcleo de Linux. A diferencia de preadv() y pwritev(), las nuevas funciones incluyen un argumento adicional para pasar al núcleo banderas extra, como RWF_SYNC (volcado de datos y metadatos del caché al soporte después de realizar la operación) y RWF_DSYNC (volcado forzado al soporte solo de datos).
- Se ha añadido soporte para las arquitecturas Loongarch64 y Riscv32.
- La implementación de la función clone() se ha mejorado para que sea utilizable.
- En la función statvfs() se garantiza el retorno del resultado con el tipo f_type.
- Para sistemas Riscv64 se ha añadido soporte para el mecanismo TLSDESC (Thread-Local Storage Descriptor).
- En el resolutor DNS se ha implementado el manejo de respuestas con secuencias CNAME largas. Se ha resuelto un problema que descartaba algunas respuestas grandes transmitidas a través de TCP.
- En las interfaces mntent se ha añadido soporte para la escape de espacios en rutas de archivos y opciones.
- En snprintf y swprintf se ha mejorado el manejo de situaciones al procesar números de tamaño mayor que INT_MAX. Se ha mejorado la conformidad con el estándar de las funciones de la familia printf.
Fuente: opennet.ru
