// HEISE ONLINE — LINUX & OPEN SOURCE
Komplett neu in Rust: Mold 3.0 wirft C++ über Bord
Mit Version 3.0 wechselt der schnelle Linker Mold von C++ zu Rust. Das nächste Ziel steht schon fest: Mold soll Standard-Linker in Linux-Distributionen werden.
Die neue Hauptversion 3.0.0 des Hochgeschwindigkeits-Linkers ist zugleich die erste Version, die komplett in Rust geschrieben ist. Mit der 3.x-Reihe wollen die Entwickler um Mold- und lld-Erfinder Rui Ueyama die letzten Kompatibilitätslücken zu GNU ld schließen, insbesondere bei der Unterstützung von Linker-Skripten, und den Weg dafür ebnen, dass Mold künftig zum Standard-Linker in Linux-Distributionen avanciert.
Dort ist als /usr/bin/ld bislang meist noch GNU ld voreingestellt, das für manche Link-Vorgänge Sekunden oder gar Minuten braucht, die Mold in wenigen Hundert Millisekunden erledigen kann.
Mold 3.0 ist als direkter Ersatz für Version 2.42.1 gedacht, die noch auf C++ basiert. Die Rust-Version unterstützt laut Release Notes unter anderem dieselben Kommandozeilenoptionen und dieselben Zielarchitekturen. Auch bei der Link-Geschwindigkeit herrscht Gleichstand. Zudem erzeugt Mold 3.0 dieselbe Ausgabe wie 2.42.1. Zur Prüfung der Kompatibilität haben die Entwickler unter anderem sämtliche Gentoo-Pakete gebaut und dabei keine Regressionen gefunden.
Der Wechsel zu Rust soll Mold robuster gegenüber beschädigten Eingabedateien machen. In der C++-Version konnte es bei solchen Dateien zu Speicherzugriffen außerhalb der gültigen Grenzen kommen, was einen Absturz mit einem Segmentation Fault zur Folge hatte. Mold 3.0 prüft diese Zugriffe auf Array- und Speichergrenzen, sodass der Linker an der fehlerhaften Stelle stattdessen kontrolliert mit einem Panic abbricht.
Mold 3.0 nutzt Cargo statt CMake als Build-System, setzt Rust 1.95 oder neuer sowie einen C-Compiler voraus und ist nicht mehr von der oneTBB-Bibliothek abhängig. Wer Mold 3.0 selbst baut, führt zuerst cargo build --release aus und installiert den Linker anschließend mit ./install-mold.sh.
montags und donnerstags - alles von heise developer
Ausführliche Informationen zum Versandverfahren und zu Ihren
Widerrufsmöglichkeiten erhalten Sie in unserer
Datenschutzerklärung.
Immer informiert bleiben: Klicken Sie auf das Plus-Symbol an einem Thema, um diesem zu folgen. Wir zeigen Ihnen alle neuen Inhalte zu Ihren Themen.
Mehr erfahren.