Mold 1.1 est déjà sorti, découvrez l'actualité de ce Linker moderne supérieur à GNU gold et LLVM

Il y a plusieurs jours la sortie de la nouvelle version du moderne Linker Mold 1.1 a été annoncée, qui peut être utilisé comme un remplacement transparent plus rapide pour l'éditeur de liens GNU sur les systèmes Linux.

Dans cette nouvelle version de moule 1.1 est une version qui contient de nouvelles fonctionnalités, des corrections de bogues et des améliorations de performances.

À propos de la moisissure

Moule prend en charge toutes les fonctionnalités de l'éditeur de liens GNU et il a des performances très élevées, car les liens qu'il établit ne sont que deux fois plus lents que la simple copie de fichiers avec l'utilitaire cp.

De cette façon, le la réduction du temps de compilation améliore considérablement la commodité de développement de grands projets en réduisant le temps d'attente dans le processus de génération de fichiers exécutables lors du débogage et du test des modifications.

La motivation pour créer Mold était l'ennui d'avoir à attendre que le lien se termine après chaque changement de code, ainsi que la faible efficacité des linkers existants dans les systèmes multicœurs et le désir de tester une architecture de liaison fondamentalement différente sans recourir à des modèles inutilement compliqués tels que la liaison incrémentale.

La haute performance de la liaison d'un fichier exécutable à partir d'un grand nombre de fichiers objets préparés par le compilateur dans Mold est obtenue grâce à l'utilisation d'algorithmes plus rapides, à la parallélisation active des opérations entre les cœurs de processeur disponibles et à l'utilisation de structures de données plus efficaces.

Par exemple, Mold implémente une technique pour effectuer simultanément des calculs intensifs avec copie de fichiers, chargement proactif de fichiers objets en mémoire, utilisation de tables de hachage rapides lors de la résolution de caractères, analyser les tables de relocalisation dans un flux séparé et dédupliquer les sections qui se répètent dans différents fichiers.

Principales nouveautés de Mold 1.1

Dans cette nouvelle version de Mold 1.1 qui est présentée, il est mis en évidence que le prise en charge de l'optimisation de l'étape de liaison (LTO, optimisation du temps de liaison).

Les optimisations LTO diffèrent en prenant en compte l'état de tous les fichiers impliqués dans le processus de construction, tandis que les modes d'optimisation traditionnels optimisent chaque fichier individuellement et ne prennent pas en compte les conditions d'appel des fonctions définies dans d'autres fichiers.

Auparavant, lorsque des fichiers de code intermédiaire (IR) GCC ou LLVM étaient rencontrés, les éditeurs de liens ld.bfd ou ld.lld appropriés étaient appelés, mais maintenant, Mold gère les fichiers IR par lui-même et utilise l'API du plug-in Linker, également utilisée dans GNU ld et lieurs d'or GNU. La vitesse lorsque LTO est activé n'est que légèrement plus rapide que les autres éditeurs de liens, car la plupart du temps est consacré à l'optimisation du code, et non à la liaison.

Il est également souligné que options ajoutées "–print-dependencies" et "–print-dependencies=full" pPour générer des informations au format CSV sur les dépendances entre les fichiers d'entrée, qui permettent par exemple d'analyser les raisons de connexion lors de la liaison de certains fichiers objets ou lors du travail pour minimiser les dépendances entre fichiers.

Un autre changement qui se démarque de la nouvelle éversion est que le prise en charge de l'architecture RISC-V (RV64) sur les plates-formes hôte et cible.

En plus de cela, nous pouvons également constater que ajout de l'option "–emit-relocs" pour permettre la copie des sections de relocalisation d'adresse des fichiers d'entrée aux fichiers finaux pour d'autres optimisations à appliquer à l'étape post-lien.

Parmi les autres changements qui ressortent:

  • Ajout de l'option "–shuffle-sections" pour randomiser l'ordre des sections avant de fixer leurs adresses dans l'espace d'adressage virtuel.
  • Ajout des options "-warn-once" et "-warn-textrel".
  • Suppression de la dépendance à libxxhash.

Enfin si vous souhaitez en savoir plus, vous pouvez vérifier les détails dans le lien suivant

Comment installer Moule ?

Pour ceux qui souhaitent pouvoir travailler avec Mold, ils peuvent obtenir l'utilitaire en téléchargeant et en compilant le code source. Pour ce faire, ouvrez simplement un terminal et tapez ce qui suit :

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

Pour connaître l'utilisation de Mold, vous pouvez consulter la documentation dans ce lien


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.