Lanzamiento de la biblioteca C estándar PicoLibc 1.4.7

Keith Packard, desarrollador activo de Debian, líder del proyecto X.Org y creador de muchas extensiones X, incluidas XRender, XComposite y XRandR, publicado lanzamiento de la biblioteca C estándar PicoLibc 1.4.7, desarrollado para su uso en dispositivos integrados con almacenamiento permanente y RAM limitados. Durante el desarrollo, parte del código fue tomado prestado de la biblioteca. nueva biblioteca del proyecto Cygwin y Librería AVR, desarrollado para microcontroladores Atmel AVR. código picolibc distribuido por bajo licencia BSD. El ensamblaje de la biblioteca es compatible con las arquitecturas ARM (32 bits), i386, RISC-V, x86_64 y PowerPC.

Inicialmente, el proyecto se desarrolló bajo el nombre "newlib-nano" y tenía como objetivo reelaborar algunas de las funciones de Newlib que consumen muchos recursos y que eran problemáticas de usar en dispositivos integrados con poca RAM. Por ejemplo, las funciones stdio han sido reemplazadas por una versión compacta de la biblioteca avrlibc. El código también se ha limpiado de componentes sin licencia BSD que no se utilizan en la compilación integrada. Se agregó una versión simplificada del código de inicialización (crt0) y la implementación de subprocesos locales se movió de 'struct _reent' al mecanismo TLS (almacenamiento local de subprocesos). El kit de herramientas Meson se utiliza para el montaje.

En el nuevo lanzamiento:

  • Se agregó la capacidad de construir usando verificado matemáticamente compilador CompCert.
  • Se agregó soporte para el compilador Clang.
  • El comportamiento de la función 'gamma' se ha adaptado al comportamiento de Glibc.
  • La implementación de nano-malloc garantiza que se borre la memoria devuelta.
  • Se mejoró el rendimiento de nano-realloc, especialmente al fusionar bloques libres y expandir el tamaño del montón.
  • Se agregó un conjunto de pruebas para verificar el correcto funcionamiento de malloc.
  • Se mejoró el soporte para la plataforma Windows y se agregó la capacidad de compilar utilizando el kit de herramientas mingw.
  • En los sistemas ARM, si está disponible, el registro de hardware TLS (Thread-Local Storage) está habilitado.

Fuente: opennet.ru