Vydání standardní C knihovny PicoLibc 1.8.9

Byla zveřejněna verze standardní C knihovny PicoLibc 1.8.9, kterou vyvíjí Keith Packard (vedoucí projektu X.Org) pro použití na vestavných zařízeních s omezenou velikostí trvalého úložiště a operační paměti. Při vývoji byla část kódu převzata z knihovny newlib projektu Cygwin a AVR Libc, vyvíjené pro mikrokontroléry Atmel AVR. Kód PicoLibc je distribuován pod licencí BSD. Podporováno je sestavení knihovny pro architektury ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch a OpenRisc.

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í:

  • Byla přidána podpora architektur LoongArch, OpenRISC a LatticMico32.
  • Byla navržena implementace hlavičkového souboru uchar.h, který se objevil ve standardu C11.
  • Byla přidána možnost nastavení nano-malloc-clear-freed pro vyčištění paměti uvolněné po provedení free() nebo realloc().
  • Byla implementována možnost použití clang multilib na systémech ARM64.
  • Byl uskutečněn přechod na nový nástroj picolibc-ci-tools pro automatickou kompilaci v systémech kontinuální integrace.
  • Pro architekturu MIPS byla implementována podpora technologie „semihosting“, která umožňuje kódu běžícímu v prostředí ladění nebo emulátoru používat vstupní/výstupní mechanismy hostitelského systému.
  • Pro procesory Xtensa byla přidána podpora picocrt a semihost.
  • Byla přidána nastavení pro použití s CoreBoot.
  • Byla přidána funkce memset_explicit(), která se objevila ve standardu C23.
  • Tabulky pro převod znakových registrů byly aktualizovány na specifikaci Unicode 15.1.0.
  • Z knihovny newlib byly přeneseny funkce asnprintf() a vasnprintf().
  • Byla přidána podpora emulátoru FVP (Fixed Virtual Platforms), vyvíjeného společností ARM.
  • Byla přidána podpora starších verzí překladače GCC (starších než 4.4).
  • Implementace iconv a locale byly nahrazeny kompaktnějšími variantami, které využívají společný kód pro práci s kódováním.

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