Vydání standardní C knihovny PicoLibc 1.4.7

Keith Packard, aktivní vývojář Debianu, vedoucí projektu X.Org a tvůrce mnoha rozšíření X, včetně XRender, XComposite a XRandR, zveřejněna vydání standardní knihovny C PicoLibc 1.4.7, vyvinutý pro použití na vestavěných zařízeních s omezeným trvalým úložištěm a RAM. Během vývoje byla část kódu vypůjčena z knihovny newlib z projektu Cygwin a AVR Libc, vyvinuté pro mikrokontroléry Atmel AVR. PicoLibc kód distribuovány pod licencí BSD. Sestavení knihovny je podporováno pro architektury ARM (32bitové), i386, RISC-V, x86_64 a PowerPC.

Zpočátku byl projekt vyvíjen pod názvem „newlib-nano“ a byl zaměřen na přepracování některých funkcí Newlib náročných na zdroje, jejichž použití na vestavěných zařízeních s malou RAM bylo problematické. Například funkce stdio byly nahrazeny kompaktní verzí z knihovny avrlibc. Kód byl také vyčištěn od komponent nelicencovaných BSD, které nejsou použity ve vloženém sestavení. Byla přidána zjednodušená verze inicializačního kódu (crt0) a implementace lokálních vláken byla přesunuta z 'struct _reent' do mechanismu TLS (vlákno-místní úložiště). K montáži se používá sada nástrojů Meson.

V novém vydání:

  • Přidána možnost stavět pomocí matematicky ověřeno kompilátor CompCert.
  • Přidána podpora pro kompilátor Clang.
  • Chování funkce 'gama' bylo uvedeno do souladu s chováním Glibc.
  • Implementace nano-malloc zajišťuje vymazání vrácené paměti.
  • Vylepšený výkon nano-realloc, zejména při slučování volných bloků a rozšiřování velikosti haldy.
  • Přidána sada testů pro kontrolu správného fungování malloc.
  • Vylepšená podpora pro platformu Windows a přidána možnost sestavování pomocí sady nástrojů mingw.
  • Na systémech ARM, pokud je k dispozici, je povolen hardwarový registr TLS (Thread-Local Storage).

Zdroj: opennet.ru