Liberazione di a libreria C standard PicoLibc 1.4.7

Keith Packard, attivu sviluppatore Debian, capu di u prughjettu X.Org è creatore di parechje estensioni X, cumprese XRender, XComposite è XRandR, publicatu liberazione di a libreria C standard PicoLibc 1.4.7, sviluppatu per l'usu nantu à i dispositi incrustati cù un almacenamentu permanente limitatu è RAM. Durante u sviluppu, una parte di u codice hè stata presa in prestu da a biblioteca novu lib da u prughjettu Cygwin è AVR Libc, sviluppatu per i microcontrollers Atmel AVR. Codice PicoLibc distribuitu da sottu licenza BSD. L'assemblea di a biblioteca hè supportata per l'architetture ARM (32-bit), i386, RISC-V, x86_64 è PowerPC.

In u principiu, u prugettu hè statu sviluppatu sottu u nome "newlib-nano" è era destinatu à ricuperà alcune di e funzioni intensive di risorse di Newlib, chì eranu problematiche per aduprà in i dispositi incrustati cù pocu RAM. Per esempiu, e funzioni stdio sò stati rimpiazzati cù una versione compacta da a libreria avrlibc. U codice hè statu ancu pulitu di cumpunenti micca licenziati BSD chì ùn sò micca usati in a custruzzione incrustata. Una versione simplificata di u codice di inizializazione (crt0) hè stata aghjunta, è l'implementazione di fili lucali hè stata spustata da 'struct _reent' à u mecanismu TLS (almacenamentu locale di filu). U toolkit Meson hè utilizatu per l'assemblea.

In a nova versione:

  • Aggiunta a capacità di custruisce usendu verificatu matematicamente compilatore CompCert.
  • Aghjunghje supportu per u compilatore Clang.
  • U cumpurtamentu di a funzione "gamma" hè statu purtatu in ligna cù u cumpurtamentu di Glibc.
  • L'implementazione nano-malloc assicura chì a memoria restituita hè sguassata.
  • Prestazione mejorata di nano-realloc, soprattuttu quandu si fusione blocchi gratuiti è espansione a dimensione di u heap.
  • Aggiuntu un inseme di teste per verificà u funziunamentu currettu di malloc.
  • Supportu migliuratu per a piattaforma Windows è aghjustatu a capacità di custruisce cù u toolkit mingw.
  • In i sistemi ARM, se dispunibule, u registru hardware TLS (Thread-Local Storage) hè attivatu.

Source: opennet.ru