Veröffentlichung der Standard-C-Bibliothek Musl 1.2.6

Nach zwei Jahren Entwicklung wurde die Version 1.2.6 der Standard-C-Bibliothek Musl veröffentlicht, die eine libc-Implementierung bereitstellt, die sowohl für den Einsatz auf Desktop-PCs und Servern als auch auf mobilen Systemen geeignet ist und vollständige Unterstützung für Standards (wie in Glibc) bei geringem Speicherbedarf, niedriger Ressourcennutzung und hoher Leistung (wie in uClibc, dietlibc und Android Bionic) bietet. Es gibt Unterstützung für alle erforderlichen Schnittstellen von C99 und POSIX 2008 sowie teilweise für C11 und eine Erweiterung für Multithreading (POSIX-Threads), Speicherverwaltung und Lokalisierung. Der Code von Musl wird unter der freien MIT-Lizenz bereitgestellt.

Hauptänderungen:

  • Die Funktion posix_getdents wurde implementiert, die im POSIX-2024-Standard erschienen ist. Die Funktion liest den Inhalt eines Verzeichnisses, das mit einem offenen Dateideskriptor verknüpft ist, und speichert Informationen über Unterverzeichnisse und Dateien in posix_dent-Strukturen mit der Möglichkeit zur Begrenzung der maximalen Größe.
  • Die Linux-spezifische Funktion renameat2 wurde hinzugefügt, die Mittel für den atomaren Austausch der Namen von zwei Dateien bereitstellt (die erste Datei wird in die zweite umbenannt und die zweite in die erste). Die neue Funktion unterscheidet sich von renameat durch ein zusätzliches Flag-Feld – ohne Setzen des Flags verhält sich renameat2 identisch zu renameat, während beim Setzen des Flags RENAME_NOREPLACE die Umbenennung nicht zur Ersetzung einer bereits existierenden Datei führt.
  • Für Loongarch64-Systeme wurde Unterstützung für den TLSDESC-Mechanismus (Thread-Local Storage Descriptor) hinzugefügt, um einen effizienten Zugriff auf Variablen im lokalen Speichers des Threads zu ermöglichen.
  • Die Funktion clock_gettime wurde auf den Architekturen riscv32, riscv64, powerpc, powerpc64 und s390x mit Hilfe von vDSO optimiert. vDSO (virtual dynamic shared object) ermöglicht es, den Handler für Systemaufrufe aus dem Kernel in den Benutzerspeicher zu verschieben und Kontextwechsel zu vermeiden.
  • Um die CPU-Funktionen zur Laufzeit von Compilern zu bestimmen, wurde das Symbol __getauxval in die öffentliche ABI übersetzt.
  • Eine Sicherheitsanfälligkeit (CVE-2025-26519), die zu einem Pufferüberlauf beim Konvertieren speziell formatierter Texte von EUC-KR in UTF-8 über die Funktion iconv() führte, wurde behoben. Die Sicherheitsanfälligkeit wurde vor über einem Jahr entdeckt und bis zur Veröffentlichung durch die Installation eines Patches behoben.
  • Kompatibilitätsprobleme in den Funktionen initgroups, getusershell, exit, atexit, strerror, isatty, hasmntopt und vdso sowie in den Header-Dateien sched.h und shadow.h wurden behoben.
  • Die Übereinstimmung mit den Spezifikationen in den Funktionen pwrite (Problem mit O_APPEND behoben), mbnrtowcs (Anforderungen von POSIX-2024 berücksichtigt), strptim (Anforderungen von POSIX-2024e berücksichtigt), inet_ntop (entspricht RFC 5952) wurde verbessert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4