Mold 1.1 již byl vydán, poznejte novinky tohoto moderního Linkeru lepšího než GNU gold a LLVM

Před několika dny bylo oznámeno vydání nové verze moderního Linker Mold 1.1, který lze použít jako rychlejší transparentní náhradu za GNU linker na systémech Linux.

V této nové verzi formy 1.1 je verze, která obsahuje nové funkce, opravy chyb a vylepšení výkonu.

O plísni

Plíseň podporuje všechny funkce GNU linkeru a má velmi vysoký výkon, protože odkazy, které vytváří, jsou pouze dvakrát rychlejší než pouhé kopírování souborů pomocí nástroje cp.

Tímto způsobem zkrácení doby kompilace výrazně zlepšuje pohodlí při vývoji velkých projektů snížením doby čekání v procesu generování spustitelných souborů při ladění a testování změn.

Motivací pro vytvoření Mold byla nepříjemná nutnost čekat na dokončení odkazu po každé změně kódu, stejně jako nízká účinnost stávajících linkerů ve vícejádrových systémech a touha testovat zásadně odlišnou architekturu linků bez uchylování se ke zbytečně komplikovaným modelům, jako je inkrementální linkování.

Vysokého výkonu propojení spustitelného souboru z velkého počtu kompilátorem připravených objektových souborů v Mold je dosaženo použitím rychlejších algoritmů, aktivní paralelizace operací mezi dostupnými jádry CPU a efektivnějšího využití datových struktur.

Např Mold implementuje techniku ​​pro provádění intenzivních výpočtů současně s kopírováním souborů, proaktivním načítáním objektových souborů do paměti, používáním rychlých hash tabulek při řešení znaků, skenování relokačních tabulek v samostatném proudu a deduplikování sekcí které se opakují v různých souborech.

Hlavní novinky Plísně 1.1

V této nové verzi Mold 1.1, která je představena, je zdůrazněno, že podpora optimalizace fáze propojení (LTO, Link Time Optimization).

Optimalizace LTO se liší tím, že berou v úvahu stav všech souborů zapojených do procesu sestavení, zatímco tradiční režimy optimalizace optimalizují každý soubor individuálně a neberou v úvahu podmínky pro volání funkcí definovaných v jiných souborech.

Dříve, když byly nalezeny soubory s přechodným kódem (IR) GCC nebo LLVM, byly vyvolány příslušné linkery ld.bfd nebo ld.lld, ale nyní Mold zpracovává IR soubory sám a používá API Linker plugin, také používané v GNU ld a GNU zlaté linkery. Rychlost při aktivaci LTO je jen nepatrně rychlejší než u jiných linkerů, protože většinu času stráví optimalizací kódu, nikoli propojováním.

To je také zdůrazněno přidané možnosti „–závislosti na tisku“ a „–závislosti na tisku=plné“ pGenerování informací o závislostech ve formátu CSV mezi vstupními soubory, což lze například použít k analýze důvodů připojení při propojování určitých objektových souborů nebo při práci na minimalizaci závislostí mezi soubory.

Další změnou, která se odlišuje od nové verze, je, že podpora architektury RISC-V (RV64) na hostitelské a cílové platformě.

Kromě toho můžeme najít i to přidána možnost „–emit-relocs“, která umožňuje kopírování sekcí přemístění adres od vstupních souborů po konečné soubory pro další optimalizace, které se použijí ve fázi následného propojení.

Z dalších změn, které vynikají:

  • Přidána možnost „–shuffle-sections“ pro náhodné pořadí sekcí před fixací jejich adres ve virtuálním adresním prostoru.
  • Přidány možnosti „–warn-once“ a „–warn-textrel“.
  • Odstraněna závislost na libxxhash.

Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti v následující odkaz.

Jak nainstalovat Mould?

Pro ty, kteří mají zájem pracovat s Moldem, mohou tuto utilitu získat stažením a kompilací zdrojového kódu. Chcete-li to provést, jednoduše otevřete terminál a zadejte následující:

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

Chcete-li znát použití formy, můžete nahlédnout do dokumentace v tomto odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.