Mold 1.1 wurde bereits veröffentlicht, kennen Sie die Neuigkeiten dieses modernen Linkers, der GNU Gold und LLVM überlegen ist

Vor einigen Tagen die Veröffentlichung der neuen Version des modernen Linker Mold 1.1 wurde angekündigt, das als schneller transparenter Ersatz für den GNU-Linker auf Linux-Systemen verwendet werden kann.

Bei dieser neuen Formversion 1.1 handelt es sich um eine Version, die enthält neue Funktionen, Fehlerbehebungen und Leistungsverbesserungen.

Über Schimmel

Form unterstützt alle Funktionen des GNU-Linkers und es hat eine sehr hohe Leistung, da die Verknüpfungen, die es erstellt, nur doppelt so schnell sind wie das einfache Kopieren von Dateien mit dem Dienstprogramm cp.

Auf diese Weise wird die Die Reduzierung der Kompilierungszeit verbessert den Komfort bei der Entwicklung großer Projekte erheblich durch Reduzierung der Wartezeit beim Generierungsprozess der ausführbaren Datei beim Debuggen und Testen von Änderungen.

Die Motivation für die Erstellung von Mold war der Ärger, nach jeder Codeänderung warten zu müssen, bis der Link abgeschlossen ist. sowie die geringe Effizienz vorhandener Linker in Multicore-Systemen und der Wunsch, eine grundlegend andere Link-Architektur zu testen, ohne auf unnötig komplizierte Modelle wie inkrementelles Linking zurückzugreifen.

Die hohe Performance beim Verknüpfen einer ausführbaren Datei aus einer Vielzahl von vom Compiler vorbereiteten Objektdateien in Mold wird durch den Einsatz schnellerer Algorithmen, die aktive Parallelisierung von Operationen zwischen verfügbaren CPU-Kernen und die effizientere Nutzung von Datenstrukturen erreicht.

Zum Beispiel Mold implementiert eine Technik zur gleichzeitigen Durchführung intensiver Berechnungen mit Kopieren von Dateien, proaktivem Laden von Objektdateien in den Speicher, Verwendung schneller Hash-Tabellen beim Auflösen von Zeichen, Scannen von Verschiebungstabellen in einem separaten Stream und Deduplizieren von Abschnitten die in verschiedenen Dateien wiederholt werden.

Hauptneuheiten von Mold 1.1

In dieser neuen Version von Mold 1.1, die vorgestellt wird, wird hervorgehoben, dass die Unterstützung für die Link-Stage-Optimierung (LTO, Optimierung der Verbindungszeit).

LTO-Optimierungen unterscheiden sich dadurch, dass sie den Status aller am Build-Prozess beteiligten Dateien berücksichtigen, während herkömmliche Optimierungsmodi jede Datei einzeln optimieren und die in anderen Dateien definierten Bedingungen zum Aufrufen von Funktionen nicht berücksichtigen.

Wenn früher GCC- oder LLVM-Intermediate Code (IR)-Dateien gefunden wurden, wurden die entsprechenden ld.bfd- oder ld.lld-Linker aufgerufen, aber jetzt verarbeitet Mold IR-Dateien selbst und verwendet die Linker-Plugin-API, die auch in GNU ld und verwendet wird GNU-Gold-Linker. Die Geschwindigkeit, wenn LTO aktiviert ist, ist nur geringfügig höher als bei anderen Linkern, da die meiste Zeit damit verbracht wird, den Code zu optimieren und nicht zu verknüpfen.

Es wird auch hervorgehoben, dass Optionen hinzugefügt „–print-dependencies“ und „–print-dependencies=full“ pGenerieren von Informationen im CSV-Format über die Abhängigkeiten zwischen Eingabedateien, die beispielsweise zur Analyse von Verbindungsgründen beim Verknüpfen bestimmter Objektdateien oder beim Arbeiten zur Minimierung von Abhängigkeiten zwischen Dateien verwendet werden können.

Eine weitere Änderung, die sich von der neuen Umstülpung abhebt, ist die Unterstützung für RISC-V-Architektur (RV64) auf den Host- und Zielplattformen.

Darüber hinaus finden wir das auch Option „–emit-relocs“ hinzugefügt, um das Kopieren von Abschnitten zum Verschieben von Adressen zu ermöglichen von Eingabedateien bis zu endgültigen Dateien für weitere Optimierungen, die in der Post-Link-Phase angewendet werden.

Von den anderen Änderungen, die auffallen:

  • Option „–shuffle-sections“ hinzugefügt, um die Reihenfolge der Abschnitte zu randomisieren, bevor ihre Adressen im virtuellen Adressraum festgelegt werden.
  • Optionen „–warn-once“ und „–warn-textrel“ hinzugefügt.
  • Abhängigkeit von libxxhash entfernt.

Schließlich wenn Sie mehr darüber wissen möchtenkönnen Sie die Details in der überprüfen folgenden Link

Wie installiere ich Mold?

Wer daran interessiert ist, mit Mold zu arbeiten, kann das Dienstprogramm erhalten, indem er den Quellcode herunterlädt und kompiliert. Öffnen Sie dazu einfach ein Terminal und geben Sie Folgendes ein:

git clone https://github.com/rui314/mold.git
cd mold
git checkout v1.1.1
make -j$(nproc) CXX=clang++
sudo make install

Um mehr über die Verwendung von Mold zu erfahren, können Sie die Dokumentation konsultieren Link.


Hinterlasse einen Kommentar

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

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.