Frigivelse af standard C-biblioteket PicoLibc 1.4.7

Keith Packard, aktiv Debian-udvikler, leder af X.Org-projektet og skaber af mange X-udvidelser, herunder XRender, XComposite og XRandR, опубликовал udgivelse af standard C-biblioteket PicoLibc 1.4.7, udviklet til brug på indlejrede enheder med begrænset permanent lagerplads og RAM. Under udviklingen blev en del af koden lånt fra biblioteket newlib fra Cygwin-projektet og AVR Libc, udviklet til Atmel AVR mikrocontrollere. PicoLibc kode distribueret af under BSD-licens. Bibliotekssamling er understøttet for ARM (32-bit), i386, RISC-V, x86_64 og PowerPC arkitekturer.

Oprindeligt blev projektet udviklet under navnet "newlib-nano" og havde til formål at omarbejde nogle af de ressourcekrævende funktioner i Newlib, som var problematiske at bruge på indlejrede enheder med lidt RAM. For eksempel er stdio-funktionerne blevet erstattet med en kompakt version fra avrlibc-biblioteket. Koden er også blevet renset for ikke-BSD-licenserede komponenter, der ikke bruges i den indlejrede build. En forenklet version af initialiseringskoden (crt0) er blevet tilføjet, og implementeringen af ​​lokale tråde er blevet flyttet fra 'struct _reent' til TLS-mekanismen (tråd-lokal opbevaring). Meson-værktøjssættet bruges til montering.

I den nye udgivelse:

  • Tilføjet muligheden for at bygge vha matematisk verificeret compiler CompCert.
  • Tilføjet understøttelse af Clang-kompileren.
  • Opførselen af ​​'gamma'-funktionen er blevet bragt i overensstemmelse med adfærden hos Glibc.
  • Nano-malloc-implementeringen sikrer, at returneret hukommelse ryddes.
  • Forbedret ydeevne af nano-realloc, især ved sammenlægning af frie blokke og udvidelse af heapstørrelse.
  • Tilføjet et sæt tests for at kontrollere den korrekte funktion af malloc.
  • Forbedret understøttelse af Windows-platformen og tilføjet muligheden for at bygge ved hjælp af mingw-værktøjssættet.
  • På ARM-systemer er TLS-hardwareregistret (Thread-Local Storage) aktiveret, hvis det er tilgængeligt.

Kilde: opennet.ru