Az LLVM lld által kifejlesztett Mold 1.1 linker kiadása

Megjelent a Mold linker kiadása, amely Linux rendszereken a GNU linker gyorsabb, átlátható helyettesítésére használható. A projektet az LLVM lld linker szerzője fejlesztette ki. A Mold egyik kulcsfontosságú jellemzője az objektumfájlok összekapcsolásának nagyon nagy sebessége, észrevehetően megelőzve a GNU gold és LLVM lld linkereket (a Moldban a linkelés csak fele olyan sebességgel megy végbe, mint a fájlok egyszerű másolása a cp segédprogrammal). A kód C++ (C++20) nyelven íródott, és az AGPLv3 licenc alatt terjeszthető.

Az új verzióban:

  • Hozzáadott támogatás az optimalizáláshoz az összekapcsolási szakaszban (LTO, Link Time Optimization). Az LTO optimalizálás abban különbözik, hogy figyelembe veszi a felépítési folyamatban részt vevő összes fájl állapotát, míg a hagyományos optimalizálási módok minden fájlt külön optimalizálnak, és nem veszik figyelembe a többi fájlban meghatározott függvények meghívásának feltételeit. Míg korábban, amikor GCC vagy LLVM intermediate code (IR) fájlokat találtak, a megfelelő ld.bfd vagy ld.lld linkereket hívták meg, most a Mold önállóan dolgozza fel az IR fájlokat, és a GNU ld-ben és GNU-ban is használt Linker Plugin API-t használja. arany linkerek. Ha engedélyezve van, az LTO csak csekély mértékben gyorsabb, mint a többi linker, mivel az idő nagy részét a kódoptimalizálással tölti, nem pedig a linkeléssel.
  • Hozzáadott támogatás a RISC-V (RV64) architektúrához a gazdagépen és a célplatformokon.
  • Hozzáadtuk a „--emit-relocs” opciót, amely lehetővé teszi az áthelyezési szakaszok másolását a bemeneti fájlokból a kimeneti fájlokhoz az optimalizálás későbbi alkalmazásához az összekapcsolás utáni szakaszban.
  • A „--shuffle-sections” opció hozzáadása a szakaszok sorrendjének véletlenszerűvé tételéhez, mielőtt a virtuális címtérben rögzítené a címüket.
  • A „--print-dependencies” és „--print-dependencies=full” opciók hozzáadva CSV formátumban adhatók ki a bemeneti fájlok közötti függőségekről szóló információk, amelyek például felhasználhatók a kapcsolódás okainak elemzésére bizonyos objektumfájlok összekapcsolásakor. vagy a fájlok közötti függőségek minimalizálása során.
  • Hozzáadott "--warn-once" és "--warn-textrel" opciók.
  • A libxxhash-től való függőség eltávolítva.

Forrás: opennet.ru

Hozzászólás