The latest release of the standard SIBITETICA Musl 1.2.4 has been presented after a year of development. Musl provides the implementation of LIBC, which is suitable for use on both stationary PCs and servers, as well as mobile systems. This combines full support for standards and low resource consumption with a small size and high performance. All mandatory C99 and Posix 2008 interfaces are supported, along with partially C11 and a set of extensions for multi-flow programming (Posix Threads), memory management, and working with local. Musl is supplied under the free license mit.
The release includes a number of significant changes. The DNS-Reisolver now supports requesting TCP in the case of an unsuccessful application by UDP. This solves the problem with the request of large DNS records and sets up compatibility with recursive DNS servers that do not support the return of the result in trimmed UDPs. Several more flaws associated with DNS have also been addressed, such as the impossibility of separate processing of nodata conditions and Nxdmomain.
The deprecated program interface “LFS64” (Large File Support) has been removed, which was previously implemented through macros that replace the names. This interface is now not provided in _GNU_SOURCE mode, but remains available when setting a variable “-D_largefile64_Source” in Cflags.
The Static-Pie compotor and code implemented support for relative movements of the addresses Relr (Relative Relocation), which reduces the size of relative movements in the separated objects and executable files composed in PIE (Position-independent Executables) mode.
A series of problems in the functions of the family Printf have been fixed. The incorrect arrangement of the order of numbers and not numbers in the Strverscmp function has also been resolved. Additionally, the state of the race in the logic of the synchronization of the flows that occurs when the flow is completed, as well as in the multi-flow fork-e, pthread_detach, and posix-semaphores has been fixed.