Udgivelse af PicoLibc 1.8.9 standard C-bibliotek

Udgivet er version 1.8.9 af den standardiserede C-bibliotek PicoLibc, udviklet af Keith Packard, leder af X.Org-projektet, til brug på indlejrede enheder med begrænset fast lagerplads og RAM. I udviklingen er noget af koden lånt fra newlib-biblioteket fra Cygwin-projektet og AVR Libc, som blev udviklet til Atmel AVR-mikrokontrollere. PicoLibc-koden distribueres under BSD-licensen. Biblioteket understøtter bygning til arkitekturerne ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch og OpenRisc.

Projektet blev oprindeligt udviklet under navnet "newlib-nano" og havde til formål at revidere nogle ressourcekrævende funktioner fra Newlib, som var problematiske at bruge på indlejrede enheder med lidt RAM. For eksempel er stdio-funktionerne i PicoLibc erstattet med en kompakt version fra avrlibc-biblioteket. Koden er også renset for ikke-brugte komponenter, der ikke leveres under BSD-licensen, til sammensætningen til indlejrede enheder. Der er tilføjet en forenklet version af initialiseringskoden (crt0), og implementeringen af opkald er overgået fra ‘struct _reent’ til mekanismen for TLS (trådlokalt lager). Byggeværktøjet Meson er blevet anvendt.

I den nye version:

  • Understøttelse af arkitekturerne LoongArch, OpenRISC og LatticMico32 er blevet tilføjet.
  • Implementeringen af header-filen uchar.h, introduceret i C11-standarden, er blevet foreslået.
  • Muligheden for at konfigurere nano-malloc-clear-freed til at rydde op i hukommelsen, der er blevet frigivet efter at have udført free() eller realloc(), er blevet tilføjet.
  • Det er nu muligt at bruge clang multilib på ARM64-systemer.
  • Overgangen til det nye værktøjssæt picolibc-ci-tools til automatisk bygning i kontinuerlige integrationssystemer er blevet gennemført.
  • For MIPS-arkitekturen er der implementeret støtte til 'semihosting'-teknologi, som giver kode, der kører i en debugger- eller emulator-miljø, mulighed for at bruge værtsystemets input/output-mekanismer.
  • Støtte til picocrt og semihost er blevet tilføjet for Xtensa-processorer.
  • Der er tilføjet indstillinger til brug med CoreBoot.
  • Funktionen memset_explicit(), der blev introduceret i C23-standarden, er blevet tilføjet.
  • Symbolregisteringsomvandlingstabellerne er blevet opdateret til Unicode-specifikationen 15.1.0.
  • Funktionerne asnprintf() og vasnprintf() er blevet overført fra newlib-biblioteket.
  • Understøttelse af ARMs FVP (Fixed Virtual Platforms) emulator er blevet tilføjet.
  • Understøttelse af ældre versioner af GCC-kompilatoren (ældre end 4.4) er blevet tilføjet.
  • Implementeringerne af iconv og locale er blevet erstattet med mere kompakte varianter, der bruger fælles kode til håndtering af kodninger.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster