Release of the standard C library PicoLibc 1.8.6

The release of the standard C library PicoLibc 1.8.6 has been published, developed by Keith Packard (the leader of the X.Org project) for use on embedded devices with limited permanent storage and memory. During development, part of the code was borrowed from the newlib library of the Cygwin project and AVR Libc, which was developed for Atmel AVR microcontrollers. The PicoLibc code is distributed under the BSD license. The library supports builds for ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k, and PowerPC architectures.

Initially, the project was developed under the name 'newlib-nano' and was aimed at reworking some resource-heavy functions of Newlib, which were problematic to use on embedded devices with limited RAM. For instance, in PicoLibc, the stdio functions are replaced with a compact version from the avrlibc library. The code has also been cleaned of unused components not provided under the BSD license for embedded device builds. A simplified initialization code variant (crt0) has been added, and the implementation of calls has been converted from ‘struct _reent’ to the TLS (thread-local storage) mechanism. The Meson build system has been used.

In the new release:

  • Changes have been ported from Newlib 4.4.0, such as support for the 'long double' type on i386, RISC-V, Aarch64, and x86_64 architectures, support for RISC-V Zfinx/Zdinx extensions, the ability to use masks when inserting directories, the implementation of a port for Xtensa processors, and the separation of printf handlers into separate files to reduce size during linking.
  • The symbols ‘__eh_*’ have been added to picolibc.ld for LLVM libunwind.
  • Experimental support for 32-bit SPARC systems has been included.
  • Support has been provided for target platforms with unusual floating-point types, which are now reflected in 32-, 64-, 80-, and 128-bit types in the picolibc code.
  • Support for the RISC architecture SuperH has been added.
  • Stack tracing has been improved for debugging exception code on RISC-V systems.
  • The option ‘-Dfast-bufio=true’ has been added to increase read and write efficiency when using bufio.
  • Public inline functions have been cleaned up for shared gnu_inline semantics.
  • Most fenv functions have been converted to use inline functions (gnu_inline) instead of regular ones for performance.
  • An alternative implementation of ctype has been created, which does not use the ctype array and performs direct value comparisons.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster