Rilascio della libreria standard C PicoLibc 1.8.6

È stato pubblicato il rilascio della libreria C standard PicoLibc 1.8.6, sviluppata da Keith Packard (leader del progetto X.Org), per l'uso su dispositivi embedded con spazio di archiviazione e memoria limitati. Durante lo sviluppo, parte del codice è stata presa in prestito dalla libreria newlib del progetto Cygwin e AVR Libc, sviluppata per i microcontroller Atmel AVR. Il codice PicoLibc è distribuito con licenza BSD. È supportata la compilazione della libreria per le architetture ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k e PowerPC.

Inizialmente, il progetto è stato sviluppato con il nome "newlib-nano" ed era mirato a rielaborare alcune funzioni di Newlib ad alto consumo di risorse, che era problematico utilizzare su dispositivi embedded con poca RAM. Ad esempio, in PicoLibc le funzioni stdio sono state sostituite con una versione compatta della libreria avrlibc. Il codice è stato anche ripulito dai componenti non utilizzati nella compilazione per dispositivi embedded non distribuiti con licenza BSD. È stata aggiunta una versione semplificata del codice di inizializzazione (crt0), e l'implementazione delle chiamate è stata convertita da 'struct _reent' al meccanismo TLS (thread-local storage). È stato utilizzato lo strumento Meson per la compilazione.

Nel nuovo rilascio:

  • Sono stati trasferiti cambiamenti da Newlib 4.4.0, come il supporto per il tipo "long double" sulle architetture i386, RISC-V, Aarch64 e x86_64, supporto per le estensioni RISC-V Zfinx/Zdinx, possibilità di utilizzare maschere durante l'inserimento di directory, implementazione del porting per i processori Xtensa, segregazione dei gestori printf in file separati per ridurre la dimensione durante il linking.
  • In picolibc.ld sono stati aggiunti simboli "__eh_*" per LLVM libunwind.
  • È stato incluso il supporto di test per sistemi SPARC a 32 bit.
  • È stato fornito supporto per piattaforme target con tipi di floating-point non convenzionali, che ora si riflettono in tipi da 32, 64, 80 e 128 bit nel codice picolibc.
  • È stato aggiunto il supporto per l'architettura RISC SuperH.
  • È stato migliorato il tracciamento dello stack durante il debug del codice delle eccezioni sui sistemi RISC-V.
  • È stata aggiunta l'opzione "-Dfast-bufio=true" per aumentare l'efficienza di lettura e scrittura utilizzando bufio.
  • È stata effettuata una pulizia delle funzioni inline pubbliche per condividere la semantica gnu_inline.
  • La maggior parte delle funzioni fenv è stata convertita per migliorare le prestazioni utilizzando funzioni inline (gnu_inline) anziché normali.
  • È stata creata un'implementazione alternativa di ctype, che non utilizza un array ctype e esegue un confronto diretto dei valori.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster