Die Standard-C-Bibliothek Musl 1.2.3 wurde veröffentlicht und bietet eine Implementierung von libc, die sowohl für den Einsatz auf stationären PCs und Servern als auch auf mobilen Systemen geeignet ist. Sie kombiniert umfassende Unterstützung für Standards (wie bei Glibc) mit kleinem Speicherbedarf, niedrigem Ressourcenverbrauch und hoher Leistung (vergleichbar mit uClibc, dietlibc und Android Bionic). Es wird Unterstützung für alle verpflichtenden C99- und POSIX 2008-Schnittstellen sowie teilweise für C11 und eine Reihe von Erweiterungen für Multithreading (POSIX-Threads), Speicherverwaltung und Locale-Verarbeitung geboten. Der Musl-Code wird unter der freien MIT-Lizenz angeboten.
In der neuen Version wurde die Funktion qsort_r hinzugefügt, die für die Aufnahme in den kommenden POSIX-Standard vorgesehen ist und für die Sortierung von Arrays unter Verwendung beliebiger Vergleichsfunktionen verwendet wird. Für einige PowerPC-CPU-Modelle wurde die Unterstützung für alternative SPE FPU (Signal Processing Engine) hinzugefügt. Es wurden Änderungen vorgenommen, die darauf abzielen, die Kompatibilität zu verbessern, insbesondere im Hinblick auf die Beibehaltung des errno-Wertes, den Umgang mit Nullzeigern in gettext und die Verarbeitung der Umgebungsvariable TZ. Rückschritte in den Funktionen wcwidth und duplocale wurden behoben, ebenso wie mehrere Fehler in mathematischen Funktionen, die unter bestimmten Umständen zur Berechnung falscher Ergebnisse führten (zum Beispiel wurde in fmaf auf Systemen ohne FPU das Ergebnis fehlerhaft gerundet).
Zusätzlich kann auf die vor einigen Tagen veröffentlichte Version der Standard-C-Bibliothek PicoLibc 1.7.6 hingewiesen werden, die von Keith Packard (dem Leiter des X.Org-Projekts) für den Einsatz auf Embedded-Geräten mit begrenztem nichtflüchtigen Speicher und RAM entwickelt wird. Bei der Entwicklung wurde ein Teil des Codes aus der newlib-Bibliothek des Cygwin-Projekts und AVR Libc übernommen, die für Atmel AVR-Mikrocontroller entwickelt wurde. Der PicoLibc-Code wird unter der BSD-Lizenz verbreitet. Es wird der Build der Bibliothek für die Architekturen ARM (32-Bit), Aarch64, i386, RISC-V, x86_64, m68k und PowerPC unterstützt. In der neuen Version wurde die Verwendung mathematischer Inline-Funktionen für die Architektur aarch64 implementiert und die Möglichkeit geschaffen, mathematische Inline-Funktionen in Anwendungen auf den Architekturen arm und risc-v zu verwenden.
Quelle: opennet.ru
