Lëshimi i lidhësit Mold 1.1, i zhvilluar nga LLVM lld

Është publikuar një lëshim i lidhësit Mold, i cili mund të përdoret si një zëvendësim më i shpejtë dhe transparent për lidhësin GNU në sistemet Linux. Projekti është zhvilluar nga autori i lidhësit LLVM lld. Një tipar kyç i Mold është shpejtësia shumë e lartë e lidhjes së skedarëve të objekteve, dukshëm përpara lidhjeve GNU gold dhe LLVM lld (lidhja në Mold kryhet me një shpejtësi vetëm sa gjysma e kopjimit të skedarëve me mjetin cp). Kodi është shkruar në C++ (C++20) dhe shpërndahet nën licencën AGPLv3.

Në versionin e ri:

  • Mbështetje e shtuar për optimizimin në fazën e lidhjes (LTO, Link Time Optimization). Optimizimet LTO ndryshojnë duke marrë parasysh gjendjen e të gjithë skedarëve të përfshirë në procesin e ndërtimit, ndërsa mënyrat tradicionale të optimizimit optimizojnë secilin skedar veç e veç dhe nuk marrin parasysh kushtet për thirrjen e funksioneve të përcaktuara në skedarë të tjerë. Ndërsa më parë, kur gjendeshin skedarët e kodit të ndërmjetëm (IR) të GCC ose LLVM, thirreshin lidhësit përkatës ld.bfd ose ld.lld, tani Mold përpunon skedarët IR në mënyrë të pavarur dhe përdor API-në e shtojcës Linker, e përdorur gjithashtu në GNU ld dhe GNU lidhëse ari. Kur aktivizohet, LTO është pak më i shpejtë se lidhësit e tjerë, sepse pjesa më e madhe e kohës shpenzohet duke kryer optimizime të kodit në vend që të lidhet.
  • Mbështetje e shtuar për arkitekturën RISC-V (RV64) në platformat pritës dhe të synuar.
  • U shtua opsioni "--emit-relocs" për të mundësuar kopjimin e seksioneve të zhvendosjes nga skedarët hyrës në skedarët dalës për aplikimin e mëvonshëm të optimizimeve në fazën pas lidhjes.
  • U shtua opsioni "--shuffle-sections" për të randomizuar rendin e seksioneve përpara se të rregulloni adresat e tyre në hapësirën e adresave virtuale.
  • Opsionet e shtuara "--print-varësi" dhe "--print-varësi=plot" për të nxjerrë në formatin CSV informacion në lidhje me varësitë midis skedarëve hyrës, të cilat, për shembull, mund të përdoren për të analizuar arsyet e lidhjes kur lidhni skedarë të caktuar objektesh ose gjatë kryerjes së varësive të punës së minifikimit ndërmjet skedarëve.
  • U shtuan opsionet "--warn-once" dhe "--warn-textrel".
  • U hoq varësia nga libxxhash.

Burimi: opennet.ru

Shto një koment