Izdanje standardne C biblioteke PicoLibc 1.4.7

Keith Packard, aktivni Debian programer, vođa 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 upotrebu na ugrađenim uređajima s ograničenom trajnom pohranom i RAM-om. Tokom razvoja, dio koda je posuđen iz biblioteke newlib iz Cygwin projekta i AVR Libc, razvijen za Atmel AVR mikrokontrolere. PicoLibc kod distribuira pod BSD licencom. Sklop biblioteke je podržan za ARM (32-bitne), i386, RISC-V, x86_64 i PowerPC arhitekture.

U početku, projekat je razvijen pod nazivom “newlib-nano” i imao je za cilj preradu nekih resursno intenzivnih funkcija Newliba, koje su bile problematične za korištenje na ugrađenim uređajima s malo RAM-a. Na primjer, stdio funkcije su zamijenjene kompaktnom verzijom iz biblioteke avrlibc. Kod je također očišćen od komponenti koje nisu licencirane za BSD koje se ne koriste u ugrađenoj verziji. Dodata je pojednostavljena verzija inicijalizacionog koda (crt0), a implementacija lokalnih niti je premještena sa 'struct _reent' na TLS mehanizam (lokalna pohrana niti). Za montažu se koristi Meson alat.

U novom izdanju:

  • Dodata mogućnost izgradnje koristeći matematički verifikovano kompajler CompCert.
  • Dodata podrška za Clang kompajler.
  • Ponašanje 'gama' funkcije je usklađeno sa ponašanjem Glibca.
  • Nano-malloc implementacija osigurava da se vraćena memorija obriše.
  • Poboljšane performanse 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 dodata mogućnost izrade pomoću mingw alata.
  • Na ARM sistemima, ako je dostupan, hardverski registar TLS (Thread-Local Storage) je omogućen.

izvor: opennet.ru