Lanzamiento de la biblioteca estándar C PicoLibc 1.8.9

Se ha publicado el lanzamiento de la biblioteca estándar C PicoLibc 1.8.9, desarrollada por Keith Packard (líder del proyecto X.Org) para su uso en dispositivos integrados con almacenamiento permanente y memoria RAM limitados. Durante el desarrollo, parte del código fue tomado de la biblioteca newlib del proyecto Cygwin y AVR Libc, que se desarrolló para microcontroladores Atmel AVR. El código de PicoLibc se distribuye bajo la licencia BSD. Se soporta la compilación de la biblioteca para arquitecturas ARM (32 bits), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch y OpenRisc.

Inicialmente, el proyecto se desarrolló bajo el nombre 'newlib-nano' y estaba dirigido a la reestructuración de algunas funciones que consumen muchos recursos de Newlib, las cuales era problemático utilizar en dispositivos integrados con poca RAM. Por ejemplo, en PicoLibc, las funciones stdio se reemplazan por una variante compacta de la biblioteca avrlibc. El código también fue depurado de componentes no utilizados en la compilación para dispositivos integrados que no se distribuyen bajo la licencia BSD. Se añadió una versión simplificada del código de inicialización (crt0), y la implementación de las llamadas se trasladó de ‘struct _reent’ a un mecanismo TLS (almacenamiento local de hilos). Se utilizó la herramienta Meson para la compilación.

En esta nueva versión:

  • Se añadieron soporte para las arquitecturas LoongArch, OpenRISC y LatticMico32.
  • Se propuso la implementación del archivo de encabezado uchar.h, que apareció en el estándar C11.
  • Se añadió la configuración nano-malloc-clear-freed para limpiar la memoria liberada después de la ejecución de free() o realloc().
  • Se implementó la posibilidad de usar clang multilib en sistemas ARM64.
  • Se ha realizado la transición a la nueva herramienta picolibc-ci-tools para la construcción automática en sistemas de integración continua.
  • Para la arquitectura MIPS, se implementó el soporte para la tecnología 'semihosting', que permite que el código ejecutado en un depurador o emulador utilice los mecanismos de entrada/salida del sistema host.
  • Para los procesadores Xtensa, se añadió soporte para picocrt y semihost.
  • Se añaden configuraciones para su uso con CoreBoot.
  • Se añadió la función memset_explicit(), que apareció en el estándar C23.
  • Las tablas de conversión de registros de caracteres se actualizaron a la especificación Unicode 15.1.0.
  • Se trasladaron las funciones asnprintf() y vasnprintf() de la biblioteca newlib.
  • Se añadió soporte para el emulador FVP (Fixed Virtual Platforms), desarrollado por ARM.
  • Se añadió soporte para versiones antiguas del compilador GCC (anteriores a 4.4).
  • Las implementaciones de iconv y locale se reemplazaron por versiones más compactas, que utilizan un código común para trabajar con codificaciones.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster