I-Mold 1.1 sele ikhululiwe, yazi iindaba zale Linker yanamhlanje iphezulu kunegolide ye-GNU kunye ne-LLVM

Kwiintsuku ezininzi ezidlulileyo ukukhutshwa kwenguqulelo entsha ye-Linker Mold 1.1 yanamhlanje yabhengezwa, enokusetyenziswa njengotshintsho olukhawulezayo olucacileyo lwekhonkco le-GNU kwiinkqubo zeLinux.

Kolu guqulelo olutsha lokungunda 1.1 yinguqulelo leyo iqulethe izinto ezintsha, ukulungiswa kwebug, kunye nophuculo lokusebenza.

Malunga noMold

Mold ixhasa zonke iimpawu ze-GNU linker kwaye inomsebenzi ophezulu kakhulu, kuba amakhonkco ewenza acotha kabini kuphela njengokukhuphela iifayile nge-CP eluncedo.

Ngale ndlela i ukunciphisa ixesha lokudibanisa kuphucula ngokubonakalayo lula ukuphuhlisa iiprojekthi ezinkulu ngokunciphisa ixesha lokulinda kwinkqubo yokuvelisa ifayile ephunyeziweyo xa kulungiswa iimpazamo kunye novavanyo lokutshintsha.

Inkuthazo yokudala i-Mold yayiyinkathazo yokulinda ikhonkco ukuba igqitywe emva kokutshintsha kwekhowudi nganye, kunye nokusebenza okuphantsi konxulumano olukhoyo kwiinkqubo ezininzi kunye nomnqweno wokuvavanya ulwakhiwo lwekhonkco olwahluke ngokupheleleyo ngaphandle kokubhenela kwiimodeli ezintsonkothileyo ngokungeyomfuneko ezinjengokudibanisa okongeziweyo.

Ukusebenza okuphezulu kokudibanisa ifayile ephunyeziweyo ukusuka kwinani elikhulu leefayile ezilungiselelwe umqokeleli-ezilungiselelwe kwi-Mold ifezekiswa ngokusetyenziswa kwe-algorithms ekhawulezayo, ukuhambelana okusebenzayo kwemisebenzi phakathi kwee-cores ze-CPU ezikhoyo, kunye nokusetyenziswa kwezakhiwo zedatha ngokufanelekileyo.

Ngokomzekelo, Umngundo usebenzisa ubuchule ukwenza izibalo ezinzulu ngaxeshanye ngokhuphelo lwefayile, ukulayisha ngokuqhubekayo iifayile zento kwinkumbulo, usebenzisa iitafile ze-hash ezikhawulezayo xa ulungisa abalinganiswa, ukuskena iitafile zokufudusa kumsinga owahlukileyo kunye namacandelo aphindaphindayo eziphindwayo kwiifayile ezahlukeneyo.

Izinto ezintsha eziphambili zeMold 1.1

Kolu guqulelo lutsha lwe-Mold 1.1 oluvezwayo, kugxininiswe ukuba inkxaso yokwenziwa kwenqanaba lekhonkco (I-LTO, i-Link Time Optimization).

Ukulungiswa kwe-LTO kuyahluka ngokuthathela ingqalelo imeko yazo zonke iifayile ezibandakanyekayo kwinkqubo yokwakha, ngelixa iindlela zokuphucula eziqhelekileyo ziphucula ifayile nganye nganye kwaye ayithatheli ngqalelo iimeko zokubiza imisebenzi echazwe kwezinye iifayile.

Ngaphambili, xa iifayile ze-GCC okanye i-LLVM ikhowudi ephakathi (IR) zidibene, i-ld.bfd efanelekileyo okanye i-ld.lld linkers ziye zabhengezwa, kodwa ngoku i-Mold iphatha iifayile ze-IR ngokwayo kwaye isebenzisa i-Linker plugin API, ekwasetyenziswa kwi-GNU ld kwaye Izikhonkco zegolide ze-GNU. Isantya xa i-LTO yenziwe yasebenza ikhawuleza kancinci kunabanye abanxibelelanisi, njengoko ixesha elininzi lichithwe kusenziwa ikhowudi, ingadibanisi.

Kuyacaciswa ukuba iinketho zongeziwe “-print-dependencies” kunye “-print-dependencies= full” pUkuvelisa ulwazi kwifomathi ye-CSV malunga nabaxhomekeke phakathi kweefayile zegalelo, ezinokuthi, umzekelo, zisetyenziswe ukuhlalutya izizathu zoqhagamshelwano xa udibanisa iifayile zento ethile okanye ngelixa usebenza ukunciphisa ukuxhomekeka phakathi kweefayile.

Olunye utshintsho olubalaseleyo kwi-eversion entsha kukuba inkxaso yoyilo lwe-RISC-V (RV64) kumaqonga omkhosi kunye namaqonga ekujoliswe kuwo.

Ukongeza kuloo nto, sinokuyifumana loo nto wongezelelwe "-emit-relocs" ukhetho ukwenza ukukopishwa kwedilesi yokufuduswa kwamacandelo ukusuka kwiifayile zokufaka iifayile ukuya kwiifayile zokugqibela ukwenzela ukulungelelaniswa ngakumbi ukuze kusetyenziswe kwinqanaba le-post-link.

Olunye utshintsho olwahlukileyo:

  • Inketho eyongeziweyo "-shuffle-sections" ukwenza i-random iodolo yamacandelo ngaphambi kokulungisa iidilesi zabo kwindawo yedilesi yenyani.
  • Kongezwe "-warn-once" kunye "-warn-textrel" iinketho.
  • Ukuxhomekeka okususiweyo kwi-libxxhash.

Gqibela ukuba unomdla wokwazi okungakumbi ngayo, ungazijonga iinkcukacha kwi ukulandela ikhonkco.

Uyifaka njani iMould?

Kwabo banomdla wokukwazi ukusebenza noMold, banokufumana into eluncedo ngokukhuphela kunye nokuqulunqa ikhowudi yomthombo. Ukwenza oku, vula ngokulula i-terminal kwaye uchwetheze oku kulandelayo:

git clone https://github.com/rui314/mold.git
cd mold
git checkout v1.1.1
make -j$(nproc) CXX=clang++
sudo make install

Ukwazi ukusetyenziswa kweMold, unokujongana namaxwebhu kule khonkco.


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.