Standard SIBLIBC BIBLIBC 1.8.9 Released

The latest release of the standard C library, Picolibc 1.8.9, has been published by the developer Kita Packard, who also leads the X.org project for built-in devices with limited storage and RAM. The code for Picolibc is derived from the NewLib library, which includes code from the project Sygwin and AVR LIBC developed for ATMEL AVR microcontrollers. Picolibc is distributed under the BSD license and supports assembly for various architectures including ARM (32-bit), Aarch64, i386, RISC-V, X86_64, M68K, PowerPC, Latticmico32, Loongarch, and Openris.

Originally known as “NewLib-Nano,” the project was designed to optimize resource-intensive NewLib functions for use on devices with small RAM. For example, Picolibc replaces Stdio functions with a compact version from the AVRLIBC library. The code is optimized for built-in devices, excludes components not under the BSD license, adds a simplified initialization code (CRT0), and translates calls to use the tls (Thread-local Storage) mechanism. Assembly is facilitated using Meson tools.

The latest release of Picolibc (1.8.9) includes:

  • Added support for architectures like locarch, Openris, and latticmo32. Implementation of the header file uchar.h from the C11 standard.
  • Inclusion of Nano-Malloc-Clear-Freed settings for memory cleanup after free() or realloc() operations.
  • Support for using Clang Multilib on ARM64 systems.
  • Transition to Picolibc-Ci-Tools for automatic assembly in continuous integration systems.
  • Support for semihosting technology for MIPS architecture, enabling code execution in debugging or emulation environments.
  • Compatibility with XTensa processors through picocort and Semihost support.
  • Settings for Coreboot integration.
  • Introduction of Memset_ExPlicit(), a function from the C23 standard.
  • Updated register conversion tables to UNICODE 15.1.0 specifications.
  • Introduction of ASNPRINTF() and VASNPRINTF() functions.
  • Added support for the fvp emulator.
/Reports, release notes, official announcements.