Kapitel 3. Compiler und Werkzeuge
dracut
konfiguriert VLANs entsprechend den iBFT-Einträgen
Bislang erstellte das
dracut
-Dienstprogramm keine VLAN-Netzwerkschnittstelle, selbst wenn der VLAN-Parameter in der iBFT vorhanden und gültig war. Nach dieser Aktualisierung funktioniert iSCSI-Boot mit VLAN wie erwartet.
GCC unterstützt Hotpatching auf System z Binärdateien
Das gcc-Hotpatch-Attribut implementiert Unterstützung für Patching im laufenden Betrieb von Multithread-Code auf System z Binärdateien. Mit dieser Aktualisierung ist es möglich, mithilfe eines Funktionsattributs bestimmte Funktionen für das Hotpatching auszuwählen und mithilfe der Befehlszeilenoption »-mhotpatch=« das Hotpatching für alle Funktionen zu aktivieren.
Da das aktivierte Hotpatching negative Auswirkungen auf den Umfang und die Leistung der Software hat, wird empfohlen, es nur für bestimmte Funktionen zu aktivieren, statt die Hotpatching-Unterstützung global zu aktivieren.
Geänderte curl-Unterstützung für TLS-Versionen
Diese Aktualisierung führt die neuen Optionen
--tlsv1.0
, --tlsv1.1
und --tlsv1.2
für curl
ein, um Nebenversionen des TLS-Protokolls anzugeben, die von NSS verhandelt werden sollen. Die entsprechenden Konstanten CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1 und CURL_SSLVERSION_TLSv1_2 wurden zu diesem Zweck in der libcurl
-API implementiert. Die Semantik für die bereits vorhandene Option --tlsv1
von curl
und die Konstante CURL_SSLVERSION_TLSv1 der libcurl-API wurden verändert, um die höchste unterstützte Version des TLS 1.x Protokolls zu verhandeln, die sowohl vom Client als auch vom Server unterstützt wird.
Python ConfigParser handhabt Optionen ohne Werte fehlerfrei
Python ConfigParser war darauf ausgelegt, für jede Option einen Wert zu erfordern; bestimmte Konfigurationsdateien wie my.cnf enthalten jedoch Optionen ohne Werte. Infolgedessen konnte ConfigParser diese Konfigurationsdateien nicht lesen. Diese Funktionalität wurde zurückportiert nach Python 2.6.6 und ConfigParser ist nun dazu in der Lage, Konfigurationsdateien zu lesen, die Optionen ohne Werte enthalten.
tcpdump unterstützt die Optionen -J, -j und --time-stamp-precision
Da der Kernel, glibc und libpcap nun APIs zum Erhalt von Timestamps im Nanosekundenbereich bieten, wurde tcpdump aktualisiert, um diese Funktionalität zu nutzen. Benutzer können nun abfragen, welche Timestamp-Quellen verfügbar sind (-J), eine bestimmte Timestamp-Quelle festlegen (-j) und Timestamps mit der gewünschten Auflösung anfordern (--time-stamp-precision).
Verbesserte Dienstprogramme zum Kopieren von Daten zwischen SCSI-Geräten
Effizientere Dienstprogramme zum Kopieren von Daten zwischen Speichergeräten, die vom SCSI-Protokoll profitieren, wurden im sg3_utils-Paket implementiert. Um diese Funktionalität zu aktivieren, wurden die Programme
sg_xcopy
und sg_copy_results
auf die sg3_utils-Pakete zurückportiert.
ethtool unterstützt das Definieren von angepassten RSS-Hash-Keys
An ethtool wurden Verbesserungen vorgenommen, damit nun benutzerdefinierte Hash-Keys für RSS definiert werden können. Diese Verbesserung hilft dabei, Empfangswarteschlangen abhängig vom empfangenden Datenverkehr zu nutzen, und ermöglicht Verbesserungen an der Leistung und Sicherheit, indem geeignete Schlüssel für den den erwarteten Datenverkehr ausgewählt werden.
tcpdump unterstützt nun setdirection
Das tcpdump-Paket enthält nun Unterstützung für setdirection. Dies ermöglicht die Angabe als Argument zum -P Flag, ob nur empfangene Pakete (-P in), nur gesendete Pakete (-P out) oder beide (-P inout) aufgezeichnet werden sollen.
sysctl kann nun von einer Gruppe von Systemverzeichnissen lesen
Diese Aktualisierung führt die neue Option
--system
für das Dienstprogramm sysctl
ein. Diese Option ermöglicht es sysctl, Konfigurationsdateien von einer Gruppe von Systemverzeichnissen zu lesen.
mcelog-Pakete aktualisiert auf Upstream-Version 109
Die mcelog-Pakete wurden aktualisiert auf die Upstream-Version 109, die eine Reihe von Fehlerbehebungen und Verbesserungen gegenüber der vorherigen Version enthalten. Insbesondere unterstützt mcelog nun Intel Core i7 CPU-Architekturen.
biosdevname aktualisiert auf Upstream-Version 0.6.2
Das biosdevname-Paket wurde aktualisiert auf Upstream-Version 0.6.2 und bietet nun u. a. das
dev_port
-Attribut für den neuen Mellanox-Treiber und ermöglicht es, die Benennung von FCoE-Geräten zu ignorieren.
Verbesserungen in der PCRE-Bibliothek
Die folgenden Funktionen wurden in die PCRE-Bibliothek zurückportiert, um es dem grep-Dienstprogramm zu ermöglichen, sich von Fehlern bei der Suche mit PCRE zu erholen, falls die Binärdatei keine gültige UTF-8-Sequenz ist:
* Die Funktion pcre_exec() prüft nun auf Start-Offset-Werte außerhalb des gültigen Bereichs und gibt PCRE_ERROR_BADOFFSET-Fehler aus, statt PCRE_ERROR_NOMATCH-Fehler zu melden oder in eine Schleife zu geraten.
* Falls die Funktion pcre_exec() aufgerufen wird, um eine UTF-8-Übereinstimmung auf einer ungültigen UTF-8-Subjektzeichenfolge durchzuführen, und das ovector-Array-Argument groß genug ist, wird der Offset der ersten Subjektzeichenfolge im ungültigen UTF-8-Byte sowie der Code für den detaillierten Grund im ovector-Array-Element ausgegeben. Zudem kann nun das pcretest-Dienstprogramm verwendet werden, um diese Details anzuzeigen. Beachten Sie, dass die Funktion pcre_compile() nach dieser Aktualisierung nun das erste ungültige UTF-8-Byte statt dem letzten Byte ausgibt. Beachten Sie weiter, dass die Signatur der Funktion pcre_valid_utf8(), die nicht für den öffentlichen Gebrauch bestimmt ist, geändert wurde. Beachten Sie zu guter Letzt, dass das pcretest-Dienstprogramm nun für den Benutzer lesbare Fehlermeldungen an die Fehlercodes anhängt.
Unterstützung für Intel AVX-512 in glibc Dynamic Loader
Der glibc Dynamic Loader unterstützt nun Intel AVX-512-Erweiterungen. Diese Aktualisierung ermöglicht es dem Dynamic Loader, AVX-512-Register bei Bedarf zu speichern und wiederherzustellen und vermeidet dadurch, dass AVX-512-fähige Applikationen aufgrund von Modulen fehlschlagen, die ebenfalls AVX-512 verwenden.
Valgrind erkennt Intel MPX-Instruktionen
Valgrind erkannte nicht die Intel Memory Protection Extensions (MPX) Instruktionen oder Instruktionen, die das bnd-Präfix von MPX verwendeten. Infolgedessen beendete Valgrind Programme, die MPX-Instruktionen verwendeten, mit einem SIGKILL-Signal. Valgrind erkennt nun die neuen MPX-Instruktionen und bnd-Präfixe. Alle neuen MPX-Instruktionen sind derzeit als Instruktion ohne Operation implementiert und das bnd-Präfix wird ignoriert. Infolgedessen laufen Programme, die MPX-Instruktionen oder bnd-Präfixe unter Valgrind ausführen, als sei die MPX nicht auf der CPU aktiviert und werden nicht länger beendet.
free unterstützt benutzerlesbare Ausgabe
Die neue Option
-h
wurde zum free
-Dienstprogramm hinzugefügt. Diese Option hat den Zweck, alle Ausgabefelder automatisch auf eine dreiziffrige Darstellung mit Einheit zu verkürzen, wodurch die Ausgabe für Benutzer einfacher zu lesen ist.
w unterstützt die Option -i
Das
w
-Dienstprogramm enthält nun die Option -i
, um IP-Adressen anstelle von Hostnamen in der FROM
-Spalte anzuzeigen.
vim überarbeitet auf Version 7.4
Die vim-Pakete wurden auf Upstream-Version 7.4 aktualisiert, was verschiedene Fehlerbehebungen und Verbesserungen gegenüber der vorherigen Version bietet. Nennenswerte Änderungen: (1) Der Vim-Texteditor unterstützt nun das persistente Rückgängigmachen von Änderungen, was durch Setzen der Option
undofile
aktiviert werden kann. Standardmäßig löscht Vim beim Entladen des Puffers die Änderungsstruktur, die für diesen Puffer angelegt wurde. Wenn das persistente Rückgängigmachen von Änderungen aktiviert ist, speichert Vim dagegen automatisch den Änderungsverlauf und stellt diesen wieder her, sobald der Puffer wieder geöffnet wird. (2) Diese Aktualisierung führt eine neue Engine für reguläre Ausdrücke ein. Die bisherige Engine verwendete den Backtracking-Algorithmus. Dabei wurde das Muster auf eine Weise mit dem Text abgeglichen und falls dies fehlschlug, wurde das Muster auf eine andere Weise mit dem Text abgeglichen. Diese Engine funktionierte einwandfrei für einfache Muster, allerdings benötigte der Abgleich komplexer Muster in einem längeren Text deutlich mehr Zeit. Die neue Engine verwendet die State Machine Logic. Dabei werden alle möglichen Alternativen am aktuellen Zeichen versucht und die möglichen Status des Musters gespeichert. Dieser Vorgang ist zwar ein wenig langsamer für einfache Muster, aber deutlich schneller beim Abgleich komplexer Muster mit längeren Texten. Diese Änderung verbesserte insbesondere die Syntax-Hervorhebung für JavaScript und XML-Dateien mit langen Zeilen.