Lansarea bibliotecii standard C PicoLibc 1.8.6

A fost publicată versiunea bibliotecii standard C PicoLibc 1.8.6, dezvoltată de Keith Packard (liderul proiectului X.Org) pentru utilizare pe dispozitive încorporate cu spațiu de stocare permanent și memorie RAM limitate. În timpul dezvoltării, o parte din cod a fost preluată din biblioteca newlib a proiectului Cygwin și AVR Libc, dezvoltată pentru microcontrolerele Atmel AVR. Codul PicoLibc este distribuit sub licența BSD. Se suportă compilarea bibliotecii pentru arhitecturile ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k și PowerPC.

Inițial, proiectul a fost dezvoltat sub numele „newlib-nano” și a fost destinat să reproiecteze unele funcții consumatoare de resurse din Newlib, care erau greu de utilizat pe dispozitive încorporate cu memorie RAM mică. De exemplu, în PicoLibc, funcțiile stdio au fost înlocuite cu o variantă compactă din biblioteca avrlibc. Codul a fost, de asemenea, curățat de componentele neutilizate în compilarea pentru dispozitive încorporate, care nu sunt livrate sub licența BSD. A fost adăugată o variantă simplificată a codului de inițializare (crt0), iar implementarea apelurilor a fost transformată din „struct _reent” în mecanismul TLS (thread-local storage). Pentru compilare a fost folosit instrumentarul Meson.

În noua versiune:

  • Au fost transferate modificări din Newlib 4.4.0, cum ar fi suportul pentru tipul „long double” pe arhitecturile i386, RISC-V, Aarch64 și x86_64, suportul pentru extensiile RISC-V Zfinx/Zdinx, posibilitatea de a utiliza măști la inserția directoarelor, implementarea unei portări pentru procesoarele Xtensa, separarea gestionării printf în fișiere separate pentru a reduce dimensiunea la linkare.
  • În picolibc.ld au fost adăugate simboluri „__eh_*” pentru LLVM libunwind.
  • A fost inclus suport de testare pentru sistemele SPARC de 32 de biți.
  • A fost asigurat suport pentru platformele țintă cu tipuri neobișnuite de numere flaotante, care sunt acum reflectate în tipuri de 32, 64, 80 și 128 de biți în codul picolibc.
  • A fost adăugat suport pentru arhitectura RISC SuperH.
  • A fost îmbunătățită trasarea stivei în timpul depanării codului de excepții pe sistemele RISC-V.
  • A fost adăugată opțiunea „-Dfast-bufio=true” pentru a îmbunătăți eficiența citirii și scrierii folosind bufio.
  • A fost curățată funcțiile inline publice pentru partajarea semanticii gnu_inline.
  • Cele mai multe funcții fenv pentru îmbunătățirea performanței au fost traduse pentru a folosi funcțiile inline (gnu_inline) în loc de cele obișnuite.
  • A fost creată o implementare alternativă ctype, care nu folosește un array ctype și realizează o comparare directă a valorilor.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster