Release of Musl 1.2.5 standard C library

After 10 months of development, the release of the standard C library Musl 1.2.5 is presented, providing a libc implementation that is suitable for use on both desktop PCs and servers, and on mobile systems, combining full support for standards (as in Glibc) with a small size, low resource consumption and high performance (as in uClibc, dietlibc and Android Bionic). There is support for all required C99 and POSIX 2008 interfaces, as well as partially C11 and a set of extensions for multi-threaded programming (POSIX threads), memory management and working with locales. The Musl code is provided under the free MIT license.

Major changes:

  • Added statx() function, which differs from fstatat64 by having an additional flag argument. If the kernel does not support the statx system call, which returns extended file information, including file creation time and file system-specific flags, it falls back to using the fstatat system call.
  • Added functions preadv2() and pwritev2(), which provide wrappers over the Linux kernel system calls of the same name. The new functions differ from preadv() and pwritev() by the presence of one more argument for passing additional flags to the kernel, such as RWF_SYNC (flush data and metadata from the cache to the media after the operation is completed) and RWF_DSYNC (forced flush of only data to the media).
  • Added support for Loongarch64 and Riscv32 architectures.
  • The implementation of the clone() function has been brought to a usable state.
  • The statvfs() function ensures that a result with type f_type is returned.
  • For Riscv64 systems, support for the TLSDESC (Thread-Local Storage Descriptor) mechanism has been added.
  • The DNS resolver implements processing of responses with long CNAME sequences. Resolved an issue that caused some large responses sent over TCP to be discarded.
  • The mntent interfaces now have support for escaping spaces in file paths and options.
  • Snprintf and swprintf provide correct handling of the situation when processing numbers larger than INT_MAX. Improved compliance with the printf family of functions.

Source: opennet.ru

Add a comment