Bol released the standard C library PicoLibc 1.8.9, developed by Keith Packard (the leader of the X.Org project) for use on embedded devices with limited sizes of permanent storage and RAM. In 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. PicoLibc code is distributed under the BSD license. The library can be built for ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch, and OpenRisc architectures.
Originally, the project was developed under the name "newlib-nano" and aimed to rework some resource-intensive Newlib functions that were challenging to use on embedded devices with limited RAM. For example, in PicoLibc, stdio functions are replaced with a compact version from the avrlibc library. The code has also been cleaned of components not used in the build for embedded devices that are not supplied under the BSD license. A simplified version of initialization code (crt0) has been added, and the function calls have been translated from 'struct _reent' to the TLS (thread-local storage) mechanism. The Meson toolchain is used for building.
V novom vydaní:
- Support for the LoongArch, OpenRISC, and LatticMico32 architectures has been added.
- An implementation of the uchar.h header file, which appeared in the C11 standard, has been proposed.
- The nano-malloc-clear-freed setting has been added to clear memory freed after the execution of free() or realloc().
- The possibility of using clang multilib on ARM64 systems has been implemented.
- Transitioned to the new picolibc-ci-tools toolkit for automated builds in continuous integration systems.
- For the MIPS architecture, support for the 'semihosting' technology has been implemented, allowing code running in a debugger or emulator environment to use the I/O mechanisms of the host system.
- Support for picocrt and semihost has been added for Xtensa processors.
- Configurations have been added for use with CoreBoot.
- The memset_explicit() function, which appeared in the C23 standard, has been added.
- Character case conversion tables have been updated to Unicode 15.1.0 specification.
- The asnprintf() and vasnprintf() functions have been migrated from the newlib library.
- Support for the FVP (Fixed Virtual Platforms) emulator, developed by ARM, has been added.
- Support for older versions of the GCC compiler (prior to 4.4) has been added.
- Realizácie iconv a locale boli nahradené kompaktnejšími variantami, v ktorých sa využíva spoločný kód na prácu s kódovaniami.
Zdroj: opennet.ru
