Izdanje standardne C biblioteke PicoLibc 1.4.7

Keith Packard, aktivni Debian programer, voditelj X.Org projekta i kreator mnogih X ekstenzija, uključujući XRender, XComposite i XRandR, objavljen izdanje standardne C biblioteke PicoLibc 1.4.7, razvijen za korištenje na ugrađenim uređajima s ograničenom količinom trajne pohrane i RAM-a. Tijekom razvoja, dio koda je posuđen iz knjižnice nova biblioteka iz Cygwin projekta i AVR Libc, razvijen za Atmel AVR mikrokontrolere. PicoLibc kod distribuira pod BSD licencom. Sastavljanje biblioteke podržano je za arhitekture ARM (32-bit), i386, RISC-V, x86_64 i PowerPC.

U početku je projekt razvijen pod nazivom "newlib-nano" i bio je usmjeren na preradu nekih funkcija Newliba koje zahtijevaju velike resurse, a koje je bilo problematično koristiti na ugrađenim uređajima s malo RAM-a. Na primjer, funkcije stdio zamijenjene su kompaktnom verzijom iz knjižnice avrlibc. Kod je također očišćen od komponenti koje nisu licencirane za BSD i koje se ne koriste u ugrađenoj verziji. Dodana je pojednostavljena verzija inicijalizacijskog koda (crt0), a implementacija lokalnih niti premještena je s 'struct _reent' na TLS mehanizam (nit-lokalna pohrana). Za montažu se koristi alat Meson.

U novom izdanju:

  • Dodana je mogućnost izrade pomoću matematički provjereno sastavljač CompCert.
  • Dodana podrška za Clang kompajler.
  • Ponašanje funkcije 'gama' usklađeno je s ponašanjem Glibca.
  • Implementacija nano-malloc osigurava brisanje vraćene memorije.
  • Poboljšana izvedba nano-realloc-a, posebno pri spajanju slobodnih blokova i proširenju veličine hrpe.
  • Dodan skup testova za provjeru ispravnog rada malloc-a.
  • Poboljšana podrška za Windows platformu i dodana mogućnost izrade pomoću alata mingw.
  • Na ARM sustavima, ako je dostupan, TLS (Thread-Local Storage) hardverski registar je omogućen.

Izvor: opennet.ru