Standartinės C bibliotekos PicoLibc leidimas 1.4.7

Keithas Packardas, aktyvus Debian kūrėjas, X.Org projekto vadovas ir daugelio X plėtinių, įskaitant XRender, XComposite ir XRandR, kūrėjas, paskelbti standartinės C bibliotekos išleidimas PicoLibc 1.4.7, sukurtas naudoti įterptuosiuose įrenginiuose su ribotu nuolatinės atminties kiekiu ir RAM. Kūrimo metu dalis kodo buvo pasiskolinta iš bibliotekos newlib iš Cygwin projekto ir AVR Libc, sukurtas Atmel AVR mikrovaldikliams. PicoLibc kodas išplatino pagal BSD licenciją. Bibliotekos surinkimas palaikomas ARM (32 bitų), i386, RISC-V, x86_64 ir PowerPC architektūrose.

Iš pradžių projektas buvo sukurtas pavadinimu „newlib-nano“ ir juo buvo siekiama pertvarkyti kai kurias daug išteklių reikalaujančias „Newlib“ funkcijas, kurias buvo sudėtinga naudoti įterptiniuose įrenginiuose su mažai RAM. Pavyzdžiui, stdio funkcijos buvo pakeistos kompaktiška versija iš avrlibc bibliotekos. Kodas taip pat buvo išvalytas nuo BSD nelicencijuotų komponentų, kurie nebuvo naudojami įterptojoje versijoje. Pridėta supaprastinta inicijavimo kodo versija (crt0), o vietinių gijų diegimas perkeltas iš „struct _reent“ į TLS mechanizmą (gijų vietinė saugykla). Surinkimui naudojamas „Meson“ įrankių rinkinys.

Naujame leidime:

  • Pridėta galimybė kurti naudojant matematiškai patikrinta kompiliatorius CompCert.
  • Pridėtas Clang kompiliatoriaus palaikymas.
  • „Gama“ funkcijos elgesys buvo suderintas su Glibc elgesiu.
  • Nano-malloc įgyvendinimas užtikrina, kad grąžinta atmintis būtų išvalyta.
  • Patobulintas nano-realloc veikimas, ypač sujungiant laisvus blokus ir plečiant krūvos dydį.
  • Pridėtas testų rinkinys, skirtas patikrinti, ar malloc veikia teisingai.
  • Patobulintas „Windows“ platformos palaikymas ir pridėta galimybė kurti naudojant „mingw“ įrankių rinkinį.
  • ARM sistemose, jei yra, TLS (Thread-Local Storage) aparatinės įrangos registras įjungtas.

Šaltinis: opennet.ru