Keith Packard, active Debian developer, X.Org project leader and creator of many X extensions including XRender, XComposite, and XRandR, released the release of the standard C library PicoLibc 1.5 , which is being developed for use on embedded devices with limited persistent storage and operational memory. During development, a part of the code was borrowed from the newlib library from the Cygwin project and AVR Libc developed for Atmel AVR microcontrollers. The PicoLibc code is distributed under the BSD license. It supports building libraries for ARM (32-bit), i386, RISC-V, x86_64 and PowerPC architectures.
Initially, the project developed under the name “newlib-nano” and was aimed at reworking some resource-intensive Newlib functions that was problematic to use on embedded devices with little RAM. For example, the stdio functions have been replaced with the compact version from the avrlibc library. The code has also been stripped of non-BSD components not used in the build for embedded devices. A simplified version of the initialization code (crt0) has been added, and the implementation of local threads has been moved from ‘struct _reent’ to the TLS mechanism ( thread-local storage ). For the assembly, the Meson toolkit is used.
In new release:
- Improved compatibility with C ++ compilers.
- Added spec file for GCC and script for linking C ++ applications using the G ++ compiler.
- Fixed build issues when using Clang.
- Fixed bugs in Nano malloc implementation and in libm.
- Ported changes from code newlib 4.1.0 .
- Added tests for all semihost 2.0 features.
- Improved support for RISC-V architecture.
- Fixed issues when replacing generic code with architecture-specific implementations.