#Linux & Open Source · 5 Min. Lesezeit · Tim Rinkel

SEKUNDEN STATT MINUTEN! Mold wird in Rust neu geschrieben — und will Linux den Standard-Linker wegnehmen

SEKUNDEN STATT MINUTEN! Mold wird in Rust neu geschrieben — und will Linux den Standard-Linker wegnehmen

Es gibt einen Schritt beim Kompilieren, über den kaum jemand nachdenkt und der trotzdem einen großen Teil der Wartezeit frisst: das Linken. Genau da setzt ein Projekt an, das gerade einen radikalen Schnitt angekündigt hat.

ERST MAL: WAS MACHT EIN LINKER EIGENTLICH?

Wenn du Quelltext übersetzt, entstehen zunächst viele einzelne Bruchstücke — für jede Datei eines. Der Linker ist der Handwerker, der diese Teile am Ende zu einem lauffähigen Programm zusammensetzt: Er löst auf, welche Funktion wo liegt, hängt die benötigten Bibliotheken an und legt fest, wo im Speicher später was steht.

Das passiert ganz am Schluss und ist der Teil, der sich am schlechtesten parallelisieren lässt. Bei kleinen Projekten merkst du davon nichts. Bei großen ist das Linken oft der längste einzelne Schritt — und der, der nach jeder noch so kleinen Änderung erneut komplett durchlaufen muss.

UNGLAUBLICH: MILLISEKUNDEN STATT MINUTEN

Auf den allermeisten Linux-Systemen ist /usr/bin/ld bis heute GNU ld. Und der ist alt. Aufgaben, die mold in wenigen hundert Millisekunden erledigt, brauchen dort je nach Projektgröße Sekunden, Dutzende Sekunden oder Minuten.

mold gilt als der schnellste der frei verfügbaren Linker und liegt in Vergleichen regelmäßig vor LLVMs lld, vor GNU ld und vor dem jüngeren wild. Wer viel in C, C++ oder Rust baut, spart damit über den Tag verteilt echte Zeit — nicht als Messwert, sondern als gefühlte Wartepause vor jedem Testlauf.

DER PLAN: RUST — UND DANN DER STANDARD

Projektgründer Rui Ueyama hat angekündigt, mold von C++ nach Rust zu übertragen. Das Ergebnis soll mold 3.0 werden. Phoronix hat die Ankündigung am 12. September 2026 aufgegriffen.

Zwei Gründe stehen dahinter. Der erste ist Sicherheit: Rust verhindert eine ganze Klasse von Speicherfehlern schon beim Übersetzen — und ein Linker verarbeitet fremde Objektdateien, ist also durchaus ein lohnendes Angriffsziel.

Der zweite Grund ist der eigentlich spannende. Zusammen mit dem Umbau bekommt mold Unterstützung für Linker-Skripte. Das klingt technisch, ist aber der entscheidende Hebel: Mit Linker-Skripten legt man exakt fest, wie ein fertiges Programm im Speicher angeordnet wird. Genau das brauchen Kernel und eingebettete Systeme — und genau daran ist mold bisher gescheitert.

Das erklärte Ziel: Wenn mold alles kann, was GNU ld kann, gibt es für Distributionen keinen Grund mehr, beim langsamen Standard zu bleiben. Ueyama sagt offen, dass der Umbau genau darauf zielt — mold soll der Standard-Linker werden.

WAS DAS FÜR DICH HEISST

Kurzfristig: nichts. mold 3.0 ist ein Vorhaben, kein Download. Ein Zeitplan wurde nicht genannt.

Mittelfristig ist es eine der Änderungen, die man erst bemerkt, wenn sie da ist. Wenn Distributionen umstellen, werden Bauzeiten überall kürzer — beim eigenen Projekt, beim Docker-Image, das du selbst baust, und bei jedem Paket, das aus Quelltext gebaut wird.

EXTRA-TIPP: HEUTE SCHON AUSPROBIEREN

Du musst auf 3.0 nicht warten. mold 2.x liegt in den meisten Distributionen bereits in den Paketquellen — unter Debian und Ubuntu etwa als apt install mold. Danach reicht ein zusätzlicher Schalter beim Übersetzen:

gcc -fuse-ld=mold main.c -o main

Für Rust-Projekte trägst du den Linker in .cargo/config.toml ein. Und wenn du es einfach nur einmal erleben willst, stellt mold -run make deinem bestehenden Bauprozess mold unter, ohne dass du eine einzige Zeile an der Konfiguration änderst.

Eine Einschränkung noch, damit die Erwartung stimmt: Bei einem kleinen Programm mit drei Dateien wirst du keinen Unterschied sehen. Der Effekt beginnt dort, wo das Linken heute spürbar dauert.

FAZIT: UNSICHTBARE INFRASTRUKTUR, GROSSE WIRKUNG

Ein Linker ist nichts, womit man angibt. Aber er steht am Ende jedes einzelnen Bauvorgangs auf diesem Planeten. Wenn dieser Schritt für alle schneller wird, ist das eine der wirksamsten Verbesserungen, die man an einem System überhaupt vornehmen kann — ohne dass irgendwer etwas davon merkt.

Häufige Fragen

Was genau ist mold?
mold ist ein Linker — das Werkzeug, das die beim Kompilieren entstandenen Bruchstücke am Ende zu einem lauffähigen Programm zusammensetzt. Er ist als Ersatz für GNU ld und LLVMs lld gedacht und in Vergleichen deutlich schneller als beide. Entwickelt wird er von Rui Ueyama, der zuvor auch an lld gearbeitet hat.
Warum wird mold in Rust neu geschrieben?
Zwei Gründe: Rust schließt eine ganze Klasse von Speicherfehlern schon beim Übersetzen aus, was bei einem Werkzeug, das fremde Objektdateien verarbeitet, relevant ist. Und der Umbau geht mit der Unterstützung für Linker-Skripte einher, die mold bisher fehlt und ohne die sich Kernel und eingebettete Programme nicht linken lassen.
Wann erscheint mold 3.0?
Ein Termin wurde nicht genannt. Die Ankündigung beschreibt die Arbeit als laufendes Vorhaben mit dem Ziel, dass Distributionen ihren Standard-Linker austauschen. Bis dahin bleibt mold 2.x die verfügbare Fassung, die sich bereits heute produktiv nutzen lässt.
Kann ich mold jetzt schon verwenden?
Ja. mold 2.x steckt in den Paketquellen der meisten Distributionen, unter Debian und Ubuntu als Paket mold. Beim Übersetzen aktivierst du ihn mit -fuse-ld=mold, bei Rust über die Datei .cargo/config.toml. Mit mold -run make lässt sich ein bestehender Bauprozess ohne Konfigurationsänderung testweise darauf umstellen.

Quellen

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert