Release of Mold 1.1 linker, vyvinutý LLVM lld

Byla zveřejněna verze Mold linkeru, kterou lze použít jako rychlejší a transparentní náhradu za GNU linker na systémech Linux. Projekt je vyvinut autorem linkeru LLVM lld. Klíčovým rysem Moldu je velmi vysoká rychlost propojování objektových souborů, znatelně před linkery GNU gold a LLVM lld (linkování v Moldu se provádí rychlostí pouze poloviční než pouhé kopírování souborů pomocí nástroje cp). Kód je napsán v C++ (C++20) a distribuován pod licencí AGPLv3.

V nové verzi:

  • Přidána podpora optimalizace ve fázi propojení (LTO, Link Time Optimization). Optimalizace LTO se liší tím, že zohledňují stav všech souborů zapojených do procesu sestavení, zatímco tradiční režimy optimalizace optimalizují každý soubor zvlášť a neberou v úvahu podmínky pro volání funkcí definovaných v jiných souborech. Zatímco dříve, když byly nalezeny soubory s přechodným kódem (IR) GCC nebo LLVM, byly volány odpovídající linkery ld.bfd nebo ld.lld, nyní Mold zpracovává IR soubory nezávisle a používá Linker Plugin API, používané také v GNU ld a GNU zlaté linkery. Je-li povoleno, LTO je jen nepatrně rychlejší než ostatní linkery, protože většinu času stráví optimalizací kódu spíše než propojováním.
  • Přidána podpora architektury RISC-V (RV64) na hostitelské a cílové platformě.
  • Přidána možnost „--emit-relocs“, která umožňuje kopírování sekcí přemístění ze vstupních souborů do výstupních souborů pro následnou aplikaci optimalizací ve fázi po propojení.
  • Přidána možnost „--shuffle-sections“ k náhodnému uspořádání pořadí sekcí před fixací jejich adres ve virtuálním adresním prostoru.
  • Přidány volby „--print-dependencies“ a „--print-dependencies=full“ pro výstup informací ve formátu CSV o závislostech mezi vstupními soubory, které 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 provádění závislostí práce minifikace mezi soubory.
  • Přidány možnosti „--warn-once“ a „--warn-textrel“.
  • Odstraněna závislost na libxxhash.

Zdroj: opennet.ru

Přidat komentář