Sortie de la bibliothèque C standard PicoLibc 1.8.6.

La version de la bibliothèque standard C PicoLibc 1.8.6 a été publiée, développée par Keith Packard (leader du projet X.Org) pour une utilisation sur des appareils embarqués avec une mémoire permanente et RAM 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 de PicoLibc est distribué sous la licence BSD. La bibliothèque prend en charge la compilation pour les architectures ARM (32 bits), Aarch64, i386, RISC-V, x86_64, m68k et PowerPC.

À 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 :

  • Des changements de Newlib 4.4.0 ont été intégrés, tels que la prise en charge du type « long double » sur les architectures i386, RISC-V, Aarch64 et x86_64, le support des extensions RISC-V Zfinx/Zdinx, la possibilité d'utiliser des masques lors de l'insertion de répertoires, la réalisation d'un port pour les processeurs Xtensa, et la séparation des gestionnaires printf en fichiers distincts pour réduire la taille à l'édition.
  • Des symboles « __eh_* » pour LLVM libunwind ont été ajoutés dans picolibc.ld.
  • Le support expérimental des systèmes 32 bits SPARC a été inclus.
  • Un support a été assuré pour les plateformes cibles avec des types de nombres à virgule flottante atypiques, qui sont maintenant reflétés en types de 32, 64, 80 et 128 bits dans le code picolibc.
  • Le support de l'architecture RISC SuperH a été ajouté.
  • Le traçage de la pile lors du débogage des exceptions sur les systèmes RISC-V a été amélioré.
  • Une option « -Dfast-bufio=true » a été ajoutée pour améliorer l'efficacité de la lecture et de l'écriture lors de l'utilisation de bufio.
  • Un nettoyage des fonctions inline publiques a été effectué pour partager la sémantique gnu_inline.
  • La plupart des fonctions fenv pour améliorer les performances ont été converties pour utiliser des fonctions inline (gnu_inline) au lieu de fonctions ordinaires.
  • Une implémentation alternative de ctype a été créée, sans utiliser de tableau ctype, et effectuant une comparaison directe des valeurs.

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