Uitgave van de standaard C-bibliotheek PicoLibc 1.8.9

De release van de standaard C-bibliotheek PicoLibc 1.8.9 is gepubliceerd, ontwikkeld door Keith Packard (de leider van het X.Org-project) voor toepassing op embedded apparaten met beperkte permanente opslagcapaciteit en RAM. Bij de ontwikkeling is een deel van de code overgenomen uit de newlib-bibliotheek van het Cygwin-project en AVR Libc, die voor Atmel AVR microcontrollers werd ontwikkeld. De code van PicoLibc is beschikbaar onder de BSD-licentie. Er wordt ondersteuning geboden voor de bouw van de bibliotheek voor de architecturen ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch en OpenRisc.

Oorspronkelijk werd het project ontwikkeld onder de naam 'newlib-nano' en was het gericht op het herschrijven van enkele resource-intensievere functies van Newlib, die moeilijk te gebruiken waren op embedded apparaten met een klein RAM. Bijvoorbeeld, in PicoLibc zijn de stdio-functies vervangen door een compacte variant uit de avrlibc-bibliotheek. De code is ook ontdaan van ongebruikte componenten die niet onder de BSD-licentie worden geleverd. Een vereenvoudigde versie van de initialisatiecode (crt0) is toegevoegd, en de implementatie van aanroepen is overgezet van 'struct _reent' naar een TLS-mechanisme (thread-local storage). Voor de bouw wordt het Meson-toolkit gebruikt.

In de nieuwe release:

  • Ondersteuning voor de architecturen LoongArch, OpenRISC en LatticMico32 is toegevoegd.
  • Er is een implementatie van de headerfile uchar.h aangeboden, die is verschenen in de C11-standaard.
  • De nano-malloc-clear-freed-instelling is toegevoegd voor het vrijmaken van geheugen dat is vrijgegeven na het uitvoeren van free() of realloc().
  • De mogelijkheid om clang multilib te gebruiken op ARM64-systemen is gerealiseerd.
  • De overgang naar de nieuwe toolkit picolibc-ci-tools voor automatische bouw in continue integratiesystemen is uitgevoerd.
  • Voor de MIPS-architectuur is ondersteuning gerealiseerd voor 'semihosting'-technologie, waardoor code die wordt uitgevoerd in een debug- of emulatoromgeving, de invoer/uitvoermechanismen van het hostsysteem kan gebruiken.
  • Voor Xtensa-processors is ondersteuning voor picocrt en semihost toegevoegd.
  • Instellingen voor gebruik met CoreBoot zijn toegevoegd.
  • De functie memset_explicit(), die is verschenen in de C23-standaard, is toegevoegd.
  • De conversietabellen voor karakterregisters zijn bijgewerkt naar specificatie Unicode 15.1.0.
  • De functies asnprintf() en vasnprintf() zijn overgebracht uit de newlib-bibliotheek.
  • Ondersteuning voor de FVP (Fixed Virtual Platforms) emulator, ontwikkeld door ARM, is toegevoegd.
  • Ondersteuning voor oudere versies van de GCC-compiler (oudere dan 4.4) is toegevoegd.
  • De implementaties van iconv en locale zijn vervangen door compactere varianten die gebruikmaken van gedeelde code voor het werken met coderingen.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster