K dispozícii je štandardná knižnica C PicoLibc 1.1

Keith Packard, aktívny vývojár Debian, vedúci projektu X.Org a tvorca mnohých rozšírení X, vrátane XRender, XComposite a XRandR, predložené vydanie novej štandardnej knižnice C PicoLibc 1.1, 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.

Keith Packard začal s vývojom po tom, čo nebol schopný nájsť slušnú možnosť Libc, ktorá by sa dala použiť na vstavaných zariadeniach s malou pamäťou RAM. Projekt sa rozvíja od minulého roka. V prvej fáze bol projekt variantom newlib, v ktorom boli funkcie stdio nahradené kompaktnou verziou od avrlibc (stdio v newlib nebolo vhodné pre svoju veľkú spotrebu zdrojov). Keďže Keithova súčasná práca zahŕňa pokračujúcu prácu s architektúrou RISC-V a vývoj nástrojov pre vstavané zariadenia, nedávno zhodnotil stav implementácií libc a dospel k záveru, že s malým ladením by kombinácia newlib a avrlibc mohla byť dobrým všeobecným účelom. Riešenie. Spočiatku sa projekt vyvíjal pod názvom „newlib-nano“, ale aby sa predišlo zámene s knižnicou Newlib, bol premenovaný na PicoLibc.

Vo svojej súčasnej podobe Picolibc už vykonal prácu na odstránení všetkého kódu, ktorý nie je dodávaný pod licenciou BSD (tento kód nebol použitý pri vytváraní pre embedded zariadenia), čo výrazne zjednodušilo situáciu s licenciou pre projekt. Implementácia lokálnych tokov bola presunutá z „struct _reent“ do mechanizmu TLS (vlákno-miestne úložisko). Kompaktná verzia stdio, požičaná z kódu knižnice avrlibc, je štandardne aktivovaná (vložky assembleru špecifické pre ATmel sú prepísané v C). Na zostavenie bol použitý Meson toolkit, ktorý umožnil neviazať sa na zostavovacie skripty newlib a zjednodušiť prenos zmien z newlib. Pridaná zjednodušená verzia inicializačného kódu (crt0), pripojená k spustiteľnému súboru a vykonaná pred prenesením kontroly do funkcie main().

Vo verzii Picolibc 1.1:

  • Pridaná pomocná knižnica na podporu technológie "semihosting"umožňuje spusteniu kódu v prostredí ladiaceho nástroja alebo emulátora na použitie vstupno-výstupných mechanizmov hostiteľského systému;
  • Pre systémy, ktoré podporujú systémové volania open, close, read a write, tinystdio pridáva štandardizované I/O rozhrania POSIX stdio, vrátane funkcií fopen a fdopen, ako aj naviazanie stdin/stdout/stderr na deskriptory súborov definované v POSIX;
  • Nedávne zmeny z kódovej základne newlib boli prenesené. Vrátane pridaných libm stub pre fenv.h, ktoré je možné použiť na systémoch bez podpory s pohyblivou rádovou čiarkou;
  • Pridaný príklad vytvorenia aplikácie „Hello world“ s picolibc pre systémy ARM a RISC-V;
  • Odstránili sa adresáre newlib, libm a mathfp, ktoré obsahovali nepoužitý experimentálny kód.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster