Publication de la bibliothèque standard C PicoLibc 1.8.9

La version standard de la bibliothèque C PicoLibc 1.8.9, développée par Keith Packard (leader du projet X.Org), a été publiée pour une utilisation sur des dispositifs embarqués avec une mémoire de stockage permanent et une mémoire vive limitées. Lors du développement, une partie du code a été empruntée à la bibliothèque newlib du projet Cygwin et à AVR Libc, développée pour les microcontrôleurs Atmel AVR. Le code PicoLibc est distribué sous licence BSD. La bibliothèque prend en charge les architectures ARM (32 bits), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch et OpenRisc.

À l'origine, le projet a été développé sous le nom de "newlib-nano" et visait à retravailler certaines fonctions gourmandes en ressources de Newlib, qui étaient problématiques à utiliser sur des dispositifs embarqués avec peu de RAM. Par exemple, dans PicoLibc, les fonctions stdio ont été remplacées par une version compacte de la bibliothèque avrlibc. Le code a également été épuré des composants non utilisés dans la compilation pour les dispositifs embarqués, fournis sous une licence autre que BSD. Une version simplifiée du code d'initialisation (crt0) a été ajoutée, et l'implémentation des appels a été convertie de 'struct _reent' au mécanisme TLS (stockage local par thread). L'outil Meson a été utilisé pour la compilation.

Dans cette nouvelle version :

  • Ajout du support pour les architectures LoongArch, OpenRISC et LatticMico32.
  • Mise en œuvre de l'en-tête uchar.h, introduit dans la norme C11.
  • Ajout de la configuration nano-malloc-clear-freed pour nettoyer la mémoire libérée après l'exécution de free() ou realloc().
  • Possibilité d'utiliser clang multilib sur les systèmes ARM64.
  • Migration vers les nouveaux outils picolibc-ci-tools pour l'automatisation des builds dans les systèmes d'intégration continue.
  • Pour l'architecture MIPS, prise en charge de la technologie "semihosting", permettant au code exécuté dans un environnement de débogage ou d'émulation d'utiliser les mécanismes d'entrée/sortie du système hôte.
  • Ajout du support picocrt et semihost pour les processeurs Xtensa.
  • Ajout de paramètres pour une utilisation avec CoreBoot.
  • Ajout de la fonction memset_explicit(), introduite dans la norme C23.
  • Les tables de conversion des registres de caractères ont été mises à jour vers la spécification Unicode 15.1.0.
  • Fonctions asnprintf() et vasnprintf() transférées depuis la bibliothèque newlib.
  • Ajout du support de l'émulateur FVP (Fixed Virtual Platforms), développé par ARM.
  • Ajout de la prise en charge des anciennes versions du compilateur GCC (antérieures à 4.4).
  • Les implémentations de iconv et locale ont été remplacées par des versions plus compactes utilisant un code commun pour la gestion des encodages.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster