PicoLibc 1.8.6 Standard C Library-release

Er is een release gepubliceerd van de standaard C-bibliotheek PicoLibc 1.8.6, ontwikkeld door Keith Packard (projectleider van X.Org) voor gebruik op embedded apparaten met een beperkte hoeveelheid permanente opslag en RAM. Tijdens de ontwikkeling werd een deel van de code geleend van de newlib-bibliotheek van het Cygwin en AVR Libc-project, ontwikkeld voor Atmel AVR-microcontrollers. De PicoLibc-code wordt gedistribueerd onder de BSD-licentie. Bibliotheekassemblage wordt ondersteund voor ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k en PowerPC-architecturen.

Aanvankelijk werd het project ontwikkeld onder de naam “newlib-nano” en was het gericht op het herwerken van enkele van de resource-intensieve functies van Newlib, die problematisch waren om te gebruiken op ingebedde apparaten met weinig RAM. In PicoLibc worden bijvoorbeeld de stdio-functies vervangen door een compacte versie uit de avrlibc-bibliotheek. De code wordt ook gewist van componenten die niet worden gebruikt in de ingebedde apparaatassemblage en die niet worden geleverd onder de BSD-licentie. Er is een vereenvoudigde versie van de initialisatiecode (crt0) toegevoegd en de implementatie van oproepen is overgebracht van 'struct _reent' naar het TLS-mechanisme (thread-local storage). Voor de montage wordt gebruik gemaakt van de Meson toolkit.

In de nieuwe uitgave:

  • Wijzigingen ten opzichte van Newlib 4.4.0 zijn overgedragen, zoals ondersteuning voor het “long double” type op i386, RISC-V, Aarch64 en x86_64 architecturen, ondersteuning voor RISC-V Zfinx/Zdinx-extensies, de mogelijkheid om maskers te gebruiken bij het invoegen van mappen , implementatie van een poort voor Xtensa-processors, waarbij printf-handlers in afzonderlijke bestanden worden gescheiden om de grootte bij het koppelen te verkleinen.
  • "__eh_*"-symbolen toegevoegd aan picolibc.ld voor LLVM libunwind.
  • Testondersteuning voor 32-bit SPARC-systemen is inbegrepen.
  • Ondersteuning geboden voor doelplatforms met niet-typische drijvende-kommatypen, die nu worden weerspiegeld in 32-, 64-, 80- en 128-bits typen in picolibc-code.
  • Ondersteuning toegevoegd voor de SuperH RISC-architectuur.
  • Verbeterde stacktrace bij het debuggen van uitzonderingscode op RISC-V-systemen.
  • Optie "-Dfast-bufio=true" toegevoegd om de lees- en schrijfefficiëntie te verbeteren bij het gebruik van bufio.
  • Openbare inline-functies opgeschoond om gnu_inline-semantiek te delen.
  • De meeste fenv-functies zijn verplaatst om inline-functies (gnu_inline) te gebruiken in plaats van reguliere functies om de prestaties te verbeteren.
  • Er is een alternatieve implementatie van ctype gemaakt die de ctype-array niet gebruikt en een directe vergelijking van waarden uitvoert.

Bron: opennet.ru

Voeg een reactie