LLVM lld-ek garatutako Mold 1.1 linker-aren kaleratzea

Mold linker-aren bertsio bat argitaratu da, Linux sistemetan GNU estekatzailearen ordezko azkarrago eta garden gisa erabil daitekeena. Proiektua LLVM lld linker-en egileak garatzen du. Mold-en funtsezko ezaugarri bat objektu-fitxategiak lotzeko abiadura oso handia da, GNU gold eta LLVM lld estekatzaileen aurretik nabarmena (Mold-en lotzea fitxategiak cp utilitatearekin kopiatzea besterik ez den abiaduraren erdia baino azkarrago egiten da). Kodea C++-n (C++20) idatzita dago eta AGPLv3 lizentziapean banatzen da.

Bertsio berrian:

  • Lotura fasean optimizaziorako euskarria gehitu da (LTO, Link Time Optimization). LTO optimizazioak desberdinak dira eraikitze-prozesuan parte hartzen duten fitxategi guztien egoera kontuan hartuta, optimizazio-modu tradizionalek fitxategi bakoitza bereizita optimizatzen duten bitartean, eta ez dituzte kontuan hartzen beste fitxategi batzuetan definitutako funtzioak deitzeko baldintzak. Lehen GCC edo LLVM bitarteko kodea (IR) fitxategiak aurkitzen zirenean, dagozkien ld.bfd edo ld.lld estekatzaileak deitzen ziren, orain Moldek IR fitxategiak modu independentean prozesatzen ditu eta Linker Plugin APIa erabiltzen du, GNU ld eta GNU-n ere erabiltzen dena. urrezko lokailuak. Gaituta dagoenean, LTO beste estekatzaile batzuk baino apur bat azkarragoa da, denbora gehiena kodeen optimizazioak egiten pasatzen baitute lotzen baino.
  • Ostalari eta helburu plataformetan RISC-V (RV64) arkitekturarako euskarria gehitu da.
  • "--emit-relocs" aukera gehitu da sarrera-fitxategietatik irteera-fitxategietara lekualdatze-atalak kopiatzea gaitzeko, estekaren ondorengo fasean optimizazioak aplikatzeko.
  • "--shuffle-sections" aukera gehitu da atalen ordena ausaz banatzeko, helbideak helbide birtualean kokatu aurretik.
  • "--print-dependencies" eta "--print-dependencies=full" aukerak gehitu dira CSV formatuan sarrerako fitxategien arteko menpekotasunei buruzko informazioa ateratzeko, eta, adibidez, objektu-fitxategi jakin batzuk lotzean konexio arrazoiak aztertzeko erabil daiteke. edo fitxategien arteko minifikazio-lan menpekotasunak egitean.
  • "--warn-once" eta "--warn-textrel" aukerak gehitu dira.
  • libxxhash-en menpekotasuna kendu da.

Iturria: opennet.ru

Gehitu iruzkin berria