Login
Newsletter
Werbung

Mo, 8. September 2014, 17:45

Software::Entwicklung

glibc 2.20 erschienen

Die glibc-Entwickler haben Version 2.20 der C-Laufzeitbibliothek veröffentlicht. Der Schwerpunkt lag in der neuen Version klar auf Korrekturen, aber auch einige Optimierungen und Erweiterungen wurden vorgenommen.

Mirko Lindner

glibc ist die Laufzeitbibliothek für Programme, die in der Programmiersprache C geschrieben sind. Da auch C++ davon Gebrauch macht und viele Compiler und Interpreter für andere Sprachen selbst in C geschrieben sind, hängt letztlich ein Großteil der unter Linux laufenden Software von glibc ab. Die Bibliothek hat als Hauptziele Portabilität und hohe Geschwindigkeit. Da sie außerdem allen relevanten Standards wie ISO C11 und POSIX.1-2008 folgt, ist ihr Umfang wesentlich größer als der von alternativen Implementierungen. Sie bietet zudem eine umfassende Unterstützung für Internationalisierung, die über die meisten alternativen Bibliotheken hinausgeht.

Version 2.20 von glibc enthält laut der Ankündigung von Allan McRae zahlreiche Korrekturen sowie eine nicht so große Zahl von Änderungen und Erweiterungen. Eine große Zahl von Entwicklern war an der Erstellung der neuen Version beteiligt, die knapp sieben Monate nach Version 2.19 fertiggestellt wurde.

Wird die neue Version unter Linux ausgeführt, benötigt sie den Kernel 2.6.32 oder neuer. Zugleich stehen unter Linux neue Funktionen zum Sperren von Dateibeschreibungen bereit. Das sind Kernel-interne Datenstrukturen, die geöffnene Dateien repräsentieren, aber im Gegensatz zu den ähnlich benannten Dateideskriptoren nicht einem spezifischen Prozess zugeordnet sind. Die neue Funktionalität ist genau genommen lediglich eine Erweiterung vorhandener Funktionen um neue Flags.

In den Architekturen AArch64 und ARMv7 wurden String-Operationen durch Code-Beiträge von ARM selbst optimiert. Auf s390 und s390x wurde eine Änderung von glibc 2.19 rückgängig gemacht, da sie inkompatibel mit Programmen war, die mit früheren Versionen compiliert wurden. Programme, die mit glibc 2.19 compiliert wurden, sind nun wiederum inkompatibel mit glibc 2.20 und müssen neu compiliert werden, was aber wohl das kleinere Übel darstellte. Auf denselben Architekturen wurde auch eine Optimierung vorgenommen, mit der Sperrkonstrukte entfernt werden können. In diesen Fällen kann der Code schneller laufen und die Parallelität des Code verbessert sich. Die Architektur am33, die wohl kaum jemand kennt und die laut den Entwicklern seit Jahren nicht funktionierte, wurde entfernt. Alle noch unterstützten Architekturen verwenden jetzt das Verzeichnis »sysdeps« statt »ports«.

Die Makros _BSD_SOURCE und _SVID_SOURCE sind jetzt obsolet und ohne Wirkung, außer dass sie eine Warnung erzeugen. Die Testsuite bricht nun bei Fehlern nicht mehr ab, sondern führt alle Tests durch und sammelt die Ergebnisse. Mit einer Option kann das alte Verhalten wiederhergestellt werden.

Die NPTL-Implementation der POSIX pthreads ist jetzt kein Addon mehr, sondern wird unter Linux auf jeden Fall genutzt. Unter x86_64 kann das Lazy-Binding des Linkers nun auch genutzt werden, wenn eine Anwendung Intel MPX-Instruktionen nutzt. Einige Emulatoren könnten damit noch Probleme haben, so Valgrind bis zur Version 3.9. Die Abhilfe schaffende Version 3.10 sollte jedoch in Kürze erscheinen.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung