Vydanie štandardnej knižnice C PicoLibc 1.4.7

Keith Packard, aktívny vývojár Debianu, vedúci projektu X.Org a tvorca mnohých rozšírení X vrátane XRender, XComposite a XRandR, publikovaný vydanie štandardnej knižnice C PicoLibc 1.4.7, vyvinutý na použitie na vstavaných zariadeniach s obmedzeným trvalým ukladaním a pamäťou RAM. Počas vývoja bola časť kódu požičaná z knižnice newlib z projektu Cygwin a AVR Libc, vyvinutý pre mikrokontroléry Atmel AVR. kód PicoLibc distribuovaný pod licenciou BSD. Zostava knižnice je podporovaná pre architektúry ARM (32-bit), i386, RISC-V, x86_64 a PowerPC.

Spočiatku bol projekt vyvinutý pod názvom „newlib-nano“ a bol zameraný na prepracovanie niektorých funkcií Newlib náročných na zdroje, ktorých použitie na vstavaných zariadeniach s malou pamäťou RAM bolo problematické. Napríklad funkcie stdio boli nahradené kompaktnou verziou z knižnice avrlibc. Kód bol tiež vyčistený od komponentov nelicencovaných BSD, ktoré sa nepoužívajú vo vstavanej zostave. Bola pridaná zjednodušená verzia inicializačného kódu (crt0) a implementácia lokálnych vlákien bola presunutá z „struct _reent“ do mechanizmu TLS (vlákno-miestne úložisko). Na montáž sa používa sada nástrojov Meson.

V novom vydaní:

  • Pridaná možnosť stavať pomocou matematicky overené kompilátor CompCert.
  • Pridaná podpora pre kompilátor Clang.
  • Správanie funkcie 'gama' bolo zosúladené so správaním Glibc.
  • Implementácia nano-malloc zaisťuje vymazanie vrátenej pamäte.
  • Vylepšený výkon nano-realloc, najmä pri spájaní voľných blokov a rozširovaní veľkosti haldy.
  • Pridaná sada testov na kontrolu správneho fungovania malloc.
  • Vylepšená podpora pre platformu Windows a pridaná možnosť stavať pomocou súpravy nástrojov mingw.
  • V systémoch ARM, ak je k dispozícii, je povolený hardvérový register TLS (Thread-Local Storage).

Zdroj: opennet.ru