Mold 1.1 už bol vydaný, poznajte novinky tohto moderného Linkera lepšieho ako GNU gold a LLVM

Pred niekoľkými dňami bolo oznámené vydanie novej verzie moderného Linker Mold 1.1, ktorý možno použiť ako rýchlejšiu transparentnú náhradu za GNU linker na systémoch Linux.

V tejto novej verzii formy 1.1 je verzia, ktorá obsahuje nové funkcie, opravy chýb a vylepšenia výkonu.

O plesni

Pleseň podporuje všetky funkcie GNU linkera a má veľmi vysoký výkon, pretože prepojenia, ktoré vytvára, sú len dvakrát pomalšie ako jednoduché kopírovanie súborov pomocou nástroja cp.

Týmto spôsobom skrátenie času kompilácie výrazne zlepšuje pohodlie pri vývoji veľkých projektov skrátením čakacej doby v procese generovania spustiteľného súboru pri ladení a testovaní zmien.

Motiváciou k vytvoreniu Mold bola otrava čakať na dokončenie odkazu po každej zmene kódu, ako aj nízku efektivitu existujúcich linkerov vo viacjadrových systémoch a túžbu otestovať zásadne odlišnú architektúru linkov bez uchyľovania sa k zbytočne komplikovaným modelom, ako je inkrementálne linkovanie.

Vysoký výkon prepojenia spustiteľného súboru z veľkého počtu kompilátorom pripravených objektových súborov v Molde sa dosahuje použitím rýchlejších algoritmov, aktívnej paralelizácie operácií medzi dostupnými jadrami CPU a efektívnejším využívaním dátových štruktúr.

Napr Forma implementuje techniku ​​na vykonávanie intenzívnych výpočtov súčasne s kopírovaním súborov, proaktívne načítavanie súborov objektov do pamäte, používanie rýchlych hašovacích tabuliek pri riešení znakov, skenovanie relokačných tabuliek v samostatnom toku a deduplikovanie sekcií ktoré sa opakujú v rôznych súboroch.

Hlavné novinky Formy 1.1

V tejto novej verzii Mold 1.1, ktorá je prezentovaná, je zdôraznené, že podpora optimalizácie fázy prepojenia (LTO, Link Time Optimization).

Optimalizácie LTO sa líšia tým, že zohľadňujú stav všetkých súborov zapojených do procesu zostavovania, zatiaľ čo tradičné režimy optimalizácie optimalizujú každý súbor individuálne a nezohľadňujú podmienky pre volanie funkcií definovaných v iných súboroch.

Predtým, keď sa narazili na súbory s prechodným kódom (IR) GCC alebo LLVM, boli vyvolané príslušné linkery ld.bfd alebo ld.lld, ale teraz Mold spracováva IR súbory sám a používa API pre plugin Linker, ktorý sa tiež používa v GNU ld a GNU zlaté linkery. Rýchlosť, keď je povolený LTO, je len o niečo rýchlejšia ako u iných linkerov, pretože väčšinu času strávite optimalizáciou kódu, nie prepájaním.

Je tiež zdôraznené, že pridané možnosti „–závislosti od tlače“ a „–závislosti od tlače=úplné“ pNa generovanie informácií vo formáte CSV o závislostiach medzi vstupnými súbormi, čo možno napríklad použiť na analýzu dôvodov pripojenia pri prepájaní určitých objektových súborov alebo pri práci na minimalizácii závislostí medzi súbormi.

Ďalšou zmenou, ktorá sa odlišuje od novej verzie, je, že podpora architektúry RISC-V (RV64) na hostiteľskej a cieľovej platforme.

Okrem toho môžeme nájsť aj to pridaná možnosť „–emit-relocs“ na umožnenie kopírovania sekcií premiestnenia adries od vstupných súborov po konečné súbory na ďalšie optimalizácie, ktoré sa majú použiť vo fáze po prepojení.

Z ďalších zmien, ktoré vynikajú:

  • Pridaná možnosť „–shuffle-sections“ na náhodné poradie sekcií pred fixáciou ich adries vo virtuálnom adresnom priestore.
  • Pridané možnosti „–warn-once“ a „–warn-textrel“.
  • Odstránená závislosť na libxxhash.

Konečne ak máte záujem dozvedieť sa o tom viac, môžete skontrolovať podrobnosti v nasledujúci odkaz.

Ako nainštalovať Mould?

Pre tých, ktorí majú záujem pracovať s Mold, môžu tento nástroj získať stiahnutím a kompiláciou zdrojového kódu. Ak to chcete urobiť, jednoducho otvorte terminál a zadajte nasledujúce:

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

Ak chcete poznať použitie formy, môžete si pozrieť dokumentáciu v tomto odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.