Sortie de la bibliothèque standard C PicoLibc 1.4.7

Keith Packard, développeur Debian actif, leader du projet X.Org et créateur de nombreuses extensions X, dont XRender, XComposite et XRandR, publié sortie de la bibliothèque standard C PicoLibc 1.4.7, développé pour être utilisé sur des appareils embarqués avec un stockage permanent et une RAM limités. Lors du développement, une partie du code a été empruntée à la bibliothèque nouvellelib du projet Cygwin et AVR Libc, développé pour les microcontrôleurs Atmel AVR. Code PicoLibc distribué par sous licence BSD. L'assemblage de bibliothèques est pris en charge pour les architectures ARM (32 bits), i386, RISC-V, x86_64 et PowerPC.

Initialement, le projet était développé sous le nom de « newlib-nano » et visait à retravailler certaines des fonctions gourmandes en ressources de Newlib, qui étaient problématiques à utiliser sur des appareils embarqués avec peu de RAM. Par exemple, les fonctions stdio ont été remplacées par une version compacte de la bibliothèque avrlibc. Le code a également été nettoyé des composants sans licence BSD non utilisés dans la version intégrée. Une version simplifiée du code d'initialisation (crt0) a été ajoutée et l'implémentation des threads locaux a été déplacée de 'struct _reent' vers le mécanisme TLS (stockage local par thread). La boîte à outils Meson est utilisée pour l'assemblage.

Dans la nouvelle version :

  • Ajout de la possibilité de construire en utilisant mathématiquement vérifié compilateur CompCert.
  • Ajout de la prise en charge du compilateur Clang.
  • Le comportement de la fonction 'gamma' a été aligné sur celui de la Glibc.
  • L'implémentation nano-malloc garantit que la mémoire renvoyée est effacée.
  • Amélioration des performances de nano-realloc, en particulier lors de la fusion de blocs libres et de l'augmentation de la taille du tas.
  • Ajout d'un ensemble de tests pour vérifier le bon fonctionnement de malloc.
  • Prise en charge améliorée de la plate-forme Windows et ajout de la possibilité de créer à l'aide de la boîte à outils Mingw.
  • Sur les systèmes ARM, s'il est disponible, le registre matériel TLS (Thread-Local Storage) est activé.

Source: opennet.ru