Keith Packard, an active Debian developer, X.Org project leader, and creator of numerous X extensions including XRender, XComposite, and XRandR, Release of the standard C library , developed for use on embedded devices with limited permanent storage and RAM. In the development, part of the code was borrowed from the library from the Cygwin project and , which was developed for Atmel AVR microcontrollers. The code of PicoLibc is licensed under BSD. The library supports builds for ARM (32-bit), i386, RISC-V, x86_64, and PowerPC architectures.
Initially, the project was developed under the name "newlib-nano" and aimed to refactor some resource-intensive functions of Newlib that were problematic to use on embedded devices with limited RAM. For example, stdio functions were replaced with a compact version from the avrlibc library. The code was also stripped of components not used in the embedded build that were not supplied under the BSD license. A simplified version of the initialization code (crt0) was added, and the implementation of local streams was translated from ‘struct _reent’ to the TLS (Thread-Local Storage) mechanism.The Meson toolchain was used for the build.
In the new release:
- Added the ability to build with a compiler .
- Support for the Clang compiler has been added.
- The behavior of the ‘gamma’ function has been aligned with the behavior of Glibc.
- The implementation of nano-malloc ensures mandatory clearing of the returned memory.
- Performance of nano-realloc has been improved, especially during free block merging and heap size expansion operations.
- A test suite has been added to verify the correctness of malloc.
- Improved Windows platform support and added the ability to build using the mingw toolchain.
- On ARM systems, the hardware TLS (Thread-Local Storage) register is utilized when available.
Source: opennet.ru
