Veröffentlichung der Standard-C-Bibliothek PicoLibc 1.8.6

Die Veröffentlichung der Standard C-Bibliothek PicoLibc 1.8.6, entwickelt von Keith Packard (Projektleiter von X.Org), für den Einsatz auf Embedded-Geräten mit begrenztem Speicherplatz und RAM wurde angekündigt. Bei der Entwicklung wurde ein Teil des Codes aus der newlib-Bibliothek des Cygwin-Projekts und AVR Libc, die für Atmel AVR-Mikrocontroller entwickelt wurde, übernommen. Der Code von PicoLibc wird unter der BSD-Lizenz verbreitet. Der Bibliotheksbau wird für die Architekturen ARM (32-Bit), Aarch64, i386, RISC-V, x86_64, m68k und PowerPC unterstützt.

Das Projekt wurde ursprünglich 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 zu verwenden waren. Zum Beispiel wurden in PicoLibc die stdio-Funktionen durch eine kompakte Variante aus der avrlibc-Bibliothek ersetzt. Der Code wurde außerdem von nicht verwendeten Komponenten bereinigt, die nicht unter der BSD-Lizenz geliefert werden. Es wurde eine vereinfachte Variante des Initialisierungscodes (crt0) hinzugefügt, und die Implementierung von Aufrufen wurde von ‚struct _reent‘ auf den Mechanismus TLS (Thread-local storage) umgestellt. Für den Build wird das Meson-Toolchain 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 der RISC-V-Zusätze Zfinx/Zdinx, die Möglichkeit, Masken beim Einfügen von Verzeichnissen zu verwenden, die Implementierung eines Ports für Xtensa-Prozessoren sowie die Auslagerung von printf-Handlern in separate Dateien zur Reduzierung der Größe bei der Verknüpfung.
  • In picolibc.ld wurden die Symbole „__eh_*“ für LLVM libunwind hinzugefügt.
  • Die Testunterstützung für 32-Bit SPARC-Systeme wurde aktiviert.
  • Die Unterstützung für Zielplattformen mit nicht standardmäßigen Gleitkommatypen wurde gewährleistet, die jetzt in 32-, 64-, 80- und 128-Bit-Typen im Code von picolibc reflektiert werden.
  • Die Unterstützung für die RISC-Architektur SuperH wurde hinzugefügt.
  • Die Stack-Trace wurde bei der Fehlerbehebung von Code auf RISC-V-Systemen verbessert.
  • Die Option „-Dfast-bufio=true“ wurde hinzugefügt, um die Effizienz von Lese- und Schreibvorgängen mit bufio zu steigern.
  • Öffentliche Inline-Funktionen wurden bereinigt, um die Semantik von gnu_inline zu teilen.
  • Die meisten Funktionen von fenv wurden zur Leistungssteigerung auf die Verwendung von Inline-Funktionen (gnu_inline) anstelle von normalen Funktionen umgestellt.
  • Eine alternative Implementierung von ctype wurde erstellt, die kein ctype-Array verwendet und direkte Wertvergleiche durchführt.

Quelle: opennet.ru

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster