Standard SIBLIBC BIBLIBC 1.8.6 Released

Release of Picolibc 1.8.6

Keith Packard, leader of the X.org project, has published the release of the standard SI-library Picolibc 1.8.6. This library is specifically developed for use on built-in devices with limited constant repository and RAM. It is important to note that part of the code is borrowed from the libraries NewLib and AVR LIBC. Picolibc is distributed under the BSD license. The library is compatible with architectures such as ARM (32-bit), Aarch64, i386, RISC-V, X86_64, M68K and PowerPC.

The initial project, originally named “NewLib-Nano,” aimed to modify resource-intensive NewLib functions that were challenging to use on devices with limited RAM. One of the modifications included replacing Stdio functions with a compact version from the AVRLIBC library. Additionally, the code was cleaned from unused components and non-BSD licensed materials. A simplified version of the initialization code (CRT0) was added, and the implementation of the calls was translated to utilize the thread-local storage (TLS) mechanism. The assembly is carried out using Meson tools.

The new release includes the following updates:

  • Implementation of changes from NewLib 4.4.0, such as support for “Long Double” on various architectures, RISC-V Zfinx/Zdinx extensions, insert mask usage in catalogs, porting for XTensa processors, and separation of Printf processors into separate files to reduce sizes during layout.
  • Addition of symbols “__eh_*” in Picolibc.ld for llvm libunwind.
  • Test support for 32-bit SPARC systems.
  • New support for targeted platforms with atypical floating comma types, represented as 32-, 64-, 80-, and 128-bit types in the Picolibc code.
  • Introduction of support for the RISC architecture Superh.
  • Improved stack tracing for debugging exception codes on RISC-V systems.
/Reports, release notes, official announcements.