After 10 months of development presented the release of the standard SI-library musl 1.2.5, which provides the implementation of LIBC suitable for use on stationary PCs, servers, and mobile systems. It combines full support for standards (both in GLIBC) with a small size, low resource consumption, and high performance (as in UCLIBC, DietLibc, and Android Bionic). Musl supplies under the free MIT license. Support includes all mandatory C99 and Posix 2008 interfaces, as well as partial support for C11 with extensions for multi-thread programming (Posix Threads), memory management, and working with locales.
The main changes:
- Added the Statx () function, which differs from the FSTATAT64 by the presence of additional parameters. If the core does not support the STATX system call, the FSTATA system call is used to obtain advanced file information.
- Added functions Predv2 () and pwritev2 (), providing enhancements over PREADV() and PWRITEV() functions in Linux kernels. The new functions include additional flags like RWF_SYNC (discharge of data and metadata from the carrier after the operation) and RWF_DSYNC (forced discharge to the carrier only data).
- Added support for the architectures of Loongarch64 and RISCV32.
- The implementation of the Clone() function has been optimized for use.
- In the Statvfs() function, the result is ensured with the type of f_type.
- For RISCV64 systems, support for the TLSDESC (Thread-LocalStorageDescriptor) mechanism is added.
- In the DNS Resolver, the processing of answers with long CNAME sequences is implemented to prevent discarding of large answers through TCP.
- In the MNTENT interfaces, support for shielding spaces in file paths and options is added.
- In SNPRINTF and SWPRINTF, correct processing of numbers with larger sizes is ensured for improved compliance with the standards of the Printffamily.
/Reports, release notes, official announcements.