Izdaja povezovalnika Mold 1.1, ki ga je razvil LLVM lld

Objavljena je bila izdaja povezovalnika Mold, ki se lahko uporablja kot hitrejša in pregledna zamenjava za povezovalnik GNU v sistemih Linux. Projekt je razvil avtor povezovalnika LLVM lld. Ključna značilnost Molda je zelo visoka hitrost povezovanja objektnih datotek, opazno pred povezovalcema GNU gold in LLVM lld (povezovanje v Moldu se izvaja s hitrostjo, ki je le polovica hitrejša od preprostega kopiranja datotek s pripomočkom cp). Koda je napisana v C++ (C++20) in se distribuira pod licenco AGPLv3.

V novi različici:

  • Dodana podpora za optimizacijo na stopnji povezovanja (LTO, optimizacija časa povezave). Optimizacije LTO se razlikujejo po upoštevanju stanja vseh datotek, vključenih v proces gradnje, medtem ko tradicionalni načini optimizacije optimizirajo vsako datoteko posebej in ne upoštevajo pogojev za klicanje funkcij, definiranih v drugih datotekah. Medtem ko so bili prej, ko so bile najdene datoteke z vmesno kodo (IR) GCC ali LLVM, poklicani ustrezni povezovalniki ld.bfd ali ld.lld, zdaj Mold neodvisno obdeluje datoteke IR in uporablja API vtičnika Linker, ki se uporablja tudi v GNU ld in GNU zlati povezovalci. Ko je omogočen, je LTO le malo hitrejši od drugih povezovalnikov, ker večino časa porabimo za optimizacijo kode in ne za povezovanje.
  • Dodana podpora za arhitekturo RISC-V (RV64) na gostiteljski in ciljni platformi.
  • Dodana možnost »--emit-relocs« za omogočanje kopiranja odsekov premestitve iz vhodnih datotek v izhodne datoteke za kasnejšo uporabo optimizacij v fazi po povezovanju.
  • Dodana možnost »--shuffle-sections« za naključno določitev vrstnega reda odsekov, preden se popravijo njihovi naslovi v virtualnem naslovnem prostoru.
  • Dodani možnosti »--print-dependencies« in »--print-dependencies=full« za izpis informacij o odvisnostih med vhodnimi datotekami v formatu CSV, ki se lahko na primer uporabijo za analizo razlogov za povezavo pri povezovanju določenih objektnih datotek ali pri izvajanju dela zmanjševanja odvisnosti med datotekami.
  • Dodani možnosti "--warn-once" in "--warn-textrel".
  • Odstranjena odvisnost od libxxhash.

Vir: opennet.ru

Dodaj komentar