Veröffentlichung der Standard-C-Bibliothek PicoLibc 1.8.6

Die Standard-C-Bibliothek PicoLibc 1.8.6 wurde veröffentlicht, die von Keith Packard (Projektleiter von X.Org) fĂŒr den Einsatz auf eingebetteten GerĂ€ten mit begrenztem nichtflĂŒchtigem Speicher und RAM entwickelt wird. Bei der Entwicklung stammt ein Teil des Codes aus der Newlib-Bibliothek des Cygwin-Projekts und AVR Libc, die fĂŒr Atmel AVR Mikrocontroller entwickelt wurde. Der PicoLibc-Code ist unter der BSD-Lizenz lizenziert. Die Bibliothek unterstĂŒtzt den Bau fĂŒr die Architekturen ARM (32-Bit), Aarch64, i386, RISC-V, x86_64, m68k und PowerPC.

UrsprĂŒnglich wurde das Projekt unter dem Namen "newlib-nano" entwickelt und hatte zum Ziel, einige ressourcenintensive Funktionen von Newlib zu ĂŒberarbeiten, die auf eingebetteten GerĂ€ten mit wenig RAM problematisch waren. Zum Beispiel wurden in PicoLibc die stdio-Funktionen durch eine kompakte Version aus der avrlibc-Bibliothek ersetzt. Der Code wurde auch von Komponenten bereinigt, die in der Build-Umgebung fĂŒr eingebettete GerĂ€te nicht verwendet werden und nicht unter der BSD-Lizenz bereitgestellt werden. Eine vereinfachte Version des Initialisierungscodes (crt0) wurde hinzugefĂŒgt, und die Implementierung der Aufrufe wurde von 'struct _reent' auf den TLS-Mechanismus (Thread-local Storage) umgestellt. FĂŒr den Build wird das Meson-Toolset verwendet.

In der neuen Version:

  • Änderungen aus Newlib 4.4.0 wurden ĂŒbernommen, wie die UnterstĂŒtzung des Typs „long double“ auf den Architekturen i386, RISC-V, Aarch64 und x86_64, die UnterstĂŒtzung von RISC-V Zfinx/Zdinx Erweiterungen, die Möglichkeit, Masken beim EinfĂŒgen von Verzeichnissen zu verwenden, Implementierung des Ports fĂŒr Xtensa-Prozessoren sowie die Trennung von printf-Handlern in separate Dateien zur Reduzierung der GrĂ¶ĂŸe beim Linken.
  • In picolibc.ld wurden die Symbole „__eh_*“ fĂŒr LLVM libunwind hinzugefĂŒgt.
  • 32-Bit-SPARC-Systeme erhalten eine TestunterstĂŒtzung.
  • Die UnterstĂŒtzung fĂŒr Zielplatformen mit untypischen Gleitkommatypen wurde sichergestellt, die jetzt in 32-, 64-, 80- und 128-Bit-Typen im picolibc-Code widergespiegelt werden.
  • UnterstĂŒtzung fĂŒr die RISC-Architektur SuperH wurde hinzugefĂŒgt.
  • Die Stack-Trace-Verbesserung beim Debuggen von Ausnahmebehandlungen auf RISC-V-Systemen wurde vorgenommen.
  • Die Option „-Dfast-bufio=true“ wurde hinzugefĂŒgt, um die Effizienz beim Lesen und Schreiben mit bufio zu verbessern.
  • Öffentliche Inline-Funktionen wurden zur gemeinsamen Nutzung der gnu_inline Semantik bereinigt.
  • Die meisten fenv-Funktionen wurden zur Leistungssteigerung auf die Verwendung von Inline-Funktionen (gnu_inline) anstelle von normalen Funktionen umgestellt.
  • Eine alternative Implementierung von ctype wurde erstellt, bei der kein ctype-Array verwendet wird und die Werte direkt verglichen werden.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster