Dev News Daily ENDE

Rust 1.99.1 behebt Fehlkompilierung bei FFI-bool, fehlendes wcslen und rust-lld auf macOS

Das Rust-Release-Team hat am 15. Oktober 2026 Rust 1.99.1 angekündigt. Das Punkt-Release behebt drei Regressionen aus 1.99.0; wer Rust über rustup installiert hat, bekommt es mit rustup update stable.

FFI-Rückgaben vom Typ bool auf x86_64. Die gewichtigste Korrektur betrifft eine Fehlkompilierung. Laut Ankündigung konnten Rust-Funktionen, die über FFI ein bool zurückgeben, die Bits 1 bis 7 des Rückgaberegisters undefiniert lassen, sodass Aufrufer andere Rohwerte als 0 oder 1 sahen. Der Rückgabetyp wird nun wieder für Zero-Extension markiert, „wie es die ABI verlangt“. Der Fehlerbericht (rust-lang/rust#163911, Labels P-critical und I-miscompile) zeigt einen Minimalfall: Eine extern "C"-Funktion, die (flags & 0x1) == 0x1 berechnet, lieferte einem C-Aufrufer für die Eingabe 0x10 den Wert 16. Im Disassemblat aus dem Issue erzeugte 1.98.0 movl %edi, %eax und danach andb $0x1, %al, 1.99.0 nur noch den Move. Der Melder konnte das Verhalten mit gcc und mit clang als C-Compiler nachstellen.

Fehlendes wcslen auf UEFI- und Embedded-Zielen. Auf einigen Zielplattformen brach das Linken ab, weil wcslen fehlte. Die Ankündigung erklärt, dass LLVMs Pass loop-idiom-wcslen als Optimierung Aufrufe von wcslen einfügen kann und manche Rust-Ziele diese Funktion weder in der libc noch anderswo bereitstellen. Bei den UEFI-Zielen war jedes Projekt mit std betroffen, weil solche Aufrufe bereits in der vorkompilierten Standardbibliothek steckten; ähnlicher Nutzercode konnte das Problem aber ebenfalls auslösen. Die Funktion liegt nun als Rückfalllösung in Rusts compiler-builtins. Im Bericht (#163614) scheitert rust-lld mit „undefined symbol: wcslen“ an einem no_std-UEFI-Binary, das mit --release unter 1.99.0 gebaut wurde – unter 1.98.1 klappte es.

Rust 1.99.1 behebt Fehlkompilierung bei FFI-bool, fehlendes wcslen und rust-lld auf macOS
Rust 1.99.1 behebt Fehlkompilierung bei FFI-bool, fehlendes wcslen und rust-lld auf macOS — Dev News Daily

rust-lld auf macOS. Der mitgelieferte Linker konnte nicht starten, wenn der Compiler ohne den rustup-Proxy aufgerufen wurde, weil es keine direkte Einstellung für den nötigen Bibliothekssuchpfad gab. rust-lld wird jetzt mit einem rpath-Eintrag für das Verzeichnis mit libLLVM.dylib gebaut (#163947).

Wer aktualisieren sollte. Direkt betroffen sind alle, die auf x86_64 Rust-Funktionen mit bool-Rückgabe für C oder andere Sprachen bereitstellen, sowie Projekte für UEFI- und Embedded-Ziele. Das Release-Team bittet zudem darum, Beta- und Nightly-Kanal lokal und in der CI zu testen und Fehler zu melden.

Quelle: The Rust Release Team, „Announcing Rust 1.99.1“ — https://blog.rust-lang.org/2026/10/15/Rust-1.99.1/

Geschrieben von Victoria Shinder.