Vydání standardní C knihovny PicoLibc 1.8.6

Byl vydán release standardní C knihovny PicoLibc 1.8.6, kterou vyvíjí Keith Packard (lídr projektu X.Org) pro použití na vestavěných zařízeních s omezenou velikostí trvalého úložiště a operační pamětí. Při vývoji byla část kódu převzata z knihovny newlib projektu Cygwin a AVR Libc, která byla vyvíjena pro mikrokontroléry Atmel AVR. Kód PicoLibc je šířen pod licencí BSD. Podporuje se sestavení knihovny pro architektury ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k a PowerPC.

Projekt byl původně vyvíjen pod názvem „newlib-nano“ a měl za cíl optimalizovat některé výpočetně náročné funkce Newlib, které bylo problematické použít na vestavných zařízeních s malou RAM. Například v PicoLibc byly funkce stdio nahrazeny kompaktní verzí z knihovny avrlibc. Kód byl také zbaven nepoužívaných komponent v rámci sestavení pro vestavná zařízení, které nejsou dodávány pod licencí BSD. Přidána byla zjednodušená varianta inicializačního kódu (crt0) a implementace volání byla převedena ze 'struct _reent' na TLS (thread-local storage). K sestavení byl použit nástroj Meson.

V novém vydání:

  • Byly přeneseny změny z Newlib 4.4.0, jako podpora typu „long double“ na architekturách i386, RISC-V, Aarch64 a x86_64, podpora rozšíření RISC-V Zfinx/Zdinx, možnost použití masek při vkládání modulů, implementace portu pro procesory Xtensa, oddělení zpracovatelů printf do samostatných souborů pro snížení velikosti při linkování.
  • Do picolibc.ld byly přidány symboly „__eh_*“ pro LLVM libunwind.
  • Byla zahrnuta testovací podpora 32-bitových systémů SPARC.
  • Byla zajištěna podpora cílových platforem s netypickými typy s plovoucí desetinnou čárkou, které jsou nyní odraženy v 32-, 64-, 80- a 128-bitových typech v kódu picolibc.
  • Byla přidána podpora pro RISC architekturu SuperH.
  • Bylo zlepšeno trasování zásobníku při ladění kódu výjimek na systémech RISC-V.
  • Byla přidána možnost „-Dfast-bufio=true“ pro zvýšení efektivity čtení a zápisu při použití bufio.
  • Bylo provedeno vyčištění veřejných inline funkcí pro sdílení semantiky gnu_inline.
  • Většina funkcí fenv byla převedena na používání inline funkcí (gnu_inline) namísto běžných pro zvýšení výkonu.
  • Byla vytvořena alternativní implementace ctype, která nepoužívá pole ctype a provádí přímé porovnání hodnot.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster