Mold 1.1 is al vrijgegeven, ken het nieuws van deze moderne Linker die superieur is aan GNU-goud en LLVM

Een aantal dagen geleden de release van de nieuwe versie van moderne Linker Mold 1.1 werd aangekondigd, die kan worden gebruikt als een snellere transparante vervanging voor de GNU-linker op Linux-systemen.

In deze nieuwe versie van mal 1.1 zit een versie die Bevat nieuwe functies, bugfixes en prestatieverbeteringen.

Over schimmel

Schimmel ondersteunt alle functies van de GNU-linker en het heeft een zeer hoge prestatie, aangezien de koppelingen die het maakt slechts twee keer zo snel zijn als het simpelweg kopiëren van bestanden met het cp-hulpprogramma.

Op deze manier kan het het verkorten van de compilatietijd verbetert het gemak van het ontwikkelen van grote projecten aanzienlijk door de wachttijd in het proces voor het genereren van uitvoerbare bestanden te verminderen bij het debuggen en testen van wijzigingen.

De motivatie voor het maken van Mold was de ergernis van het moeten wachten tot de link voltooid was na elke codewijziging, evenals de lage efficiëntie van bestaande linkers in multicore-systemen en de wens om een ​​fundamenteel andere linkarchitectuur te testen zonder toevlucht te nemen tot onnodig gecompliceerde modellen zoals incrementele linking.

De hoge prestaties van het koppelen van een uitvoerbaar bestand uit een groot aantal door de compiler voorbereide objectbestanden in Mold wordt bereikt door het gebruik van snellere algoritmen, de actieve parallellisatie van bewerkingen tussen beschikbare CPU-kernen en het efficiëntere gebruik van gegevensstructuren.

Bv Mold implementeert een techniek om gelijktijdig intensieve berekeningen uit te voeren met het kopiëren van bestanden, het proactief laden van objectbestanden in het geheugen, het gebruik van snelle hash-tabellen bij het oplossen van tekens, scannen van verhuistabellen in een aparte stream en ontdubbelen van secties die in verschillende bestanden worden herhaald.

Belangrijkste nieuwe functies van Mould 1.1

In deze nieuwe versie van Mold 1.1 die gepresenteerd wordt, valt op dat de ondersteuning voor optimalisatie in de koppelingsfase (LTO, Link Time-optimalisatie).

LTO-optimalisaties verschillen door rekening te houden met de status van alle bestanden die betrokken zijn bij het compilatieproces, terwijl traditionele optimalisatiemodi elk bestand afzonderlijk optimaliseren en geen rekening houden met de voorwaarden voor het aanroepen van functies die in andere bestanden zijn gedefinieerd.

Voorheen, wanneer GCC- of LLVM-tussenliggende codebestanden (IR) werden aangetroffen, werden de juiste ld.bfd- of ld.lld-linkers aangeroepen, maar nu verwerkt Mold zelf IR-bestanden en gebruikt het de Linker-plug-in-API, die ook wordt gebruikt in GNU ld- en GNU gold-linkers. De snelheid wanneer LTO is ingeschakeld, is slechts marginaal hoger dan bij andere linkers, aangezien de meeste tijd wordt besteed aan het optimaliseren van de code, niet aan het koppelen.

Dat wordt ook benadrukt opties zijn toegevoegd “–print-dependencies” en “–print-dependencies=full” pOm informatie in CSV-formaat te genereren over de afhankelijkheden tussen invoerbestanden, die bijvoorbeeld kunnen worden gebruikt om verbindingsredenen te analyseren bij het koppelen van bepaalde objectbestanden of tijdens het werk om afhankelijkheden tussen bestanden te minimaliseren.

Een andere verandering die opvalt ten opzichte van de nieuwe eversie is dat de ondersteuning voor RISC-V (RV64) architectuur op de host- en doelplatforms.

Daarnaast kunnen we ook vinden dat optie "–emit-relocs" toegevoegd om het kopiëren van secties voor adresverplaatsing mogelijk te maken van invoerbestanden tot definitieve bestanden zodat verdere optimalisaties worden toegepast in de post-link-fase.

Van de andere veranderingen die opvallen:

  • Optie "–shuffle-secties" toegevoegd om de volgorde van secties willekeurig te maken voordat hun adressen in de virtuele adresruimte worden vastgelegd.
  • Opties "–warn-once" en "-warn-textrel" toegevoegd.
  • De libxxhash-afhankelijkheid verwijderd.

Eindelijk als u er meer over wilt wetenkunt u de details in het volgende link.

Hoe schimmel te installeren?

Voor degenen die geïnteresseerd zijn om met Mold te kunnen werken, kunnen ze het hulpprogramma verkrijgen door de broncode te downloaden en te compileren. Om dit te doen, opent u gewoon een terminal en typt u het volgende:

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

Om het gebruik van Mold te kennen, kunt u de documentatie raadplegen op deze link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.