Utgivelse av standard C-biblioteket PicoLibc 1.4.7

Keith Packard, aktiv Debian-utvikler, leder av X.Org-prosjektet og skaper av mange X-utvidelser, inkludert XRender, XComposite og XRandR, publisert utgivelse av standard C-biblioteket PicoLibc 1.4.7, utviklet for bruk på innebygde enheter med begrenset permanent lagring og RAM. Under utviklingen ble en del av koden lånt fra biblioteket newlib fra Cygwin-prosjektet og AVR Libc, utviklet for Atmel AVR mikrokontrollere. PicoLibc-kode distribuert av under BSD-lisens. Biblioteksammenstilling støttes for ARM (32-bit), i386, RISC-V, x86_64 og PowerPC-arkitekturer.

Opprinnelig ble prosjektet utviklet under navnet "newlib-nano" og hadde som mål å omarbeide noen av de ressurskrevende funksjonene til Newlib, som var problematiske å bruke på innebygde enheter med lite RAM. For eksempel er stdio-funksjonene erstattet med en kompakt versjon fra avrlibc-biblioteket. Koden har også blitt renset for ikke-BSD-lisensierte komponenter som ikke brukes i den innebygde bygningen. En forenklet versjon av initialiseringskoden (crt0) er lagt til, og implementeringen av lokale tråder er flyttet fra 'struct _reent' til TLS-mekanismen (tråd-lokal lagring). Meson-verktøysettet brukes til montering.

I den nye utgivelsen:

  • Lagt til muligheten til å bygge ved hjelp av matematisk verifisert kompilator CompCert.
  • Lagt til støtte for Clang-kompilatoren.
  • Oppførselen til "gamma"-funksjonen har blitt brakt i tråd med oppførselen til Glibc.
  • Nano-malloc-implementeringen sikrer at returnert minne tømmes.
  • Forbedret ytelse av nano-realloc, spesielt når du slår sammen ledige blokker og utvider haugstørrelsen.
  • Lagt til et sett med tester for å sjekke riktig drift av malloc.
  • Forbedret støtte for Windows-plattformen og lagt til muligheten til å bygge ved hjelp av mingw-verktøysettet.
  • På ARM-systemer, hvis tilgjengelig, er maskinvareregisteret TLS (Thread-Local Storage) aktivert.

Kilde: opennet.ru