Mould 1.1 linkeri väljalase, mille on välja töötanud LLVM lld

Avaldatud on Mold linkeri väljalase, mida saab kasutada Linuxi süsteemides GNU linkeri kiirema ja läbipaistva asendusena. Projekti on välja töötanud LLVM lld linkeri autor. Moldi põhiomadus on objektifailide linkimise väga kiire kiirus, mis on märgatavalt ees GNU gold ja LLVM lld linkeritest (linkimine toimub Moldis vaid poole kiiremini kui lihtsalt failide kopeerimine cp-utiliidiga). Kood on kirjutatud C++ (C++20) keeles ja seda levitatakse AGPLv3 litsentsi all.

Uues versioonis:

  • Lisatud on optimeerimise tugi linkimise etapis (LTO, Link Time Optimization). LTO optimeerimised erinevad selle poolest, et võtavad arvesse kõigi ehitusprotsessis osalevate failide olekut, samas kui traditsioonilised optimeerimisrežiimid optimeerivad iga faili eraldi ega võta arvesse teistes failides määratletud funktsioonide kutsumise tingimusi. Kui varem kutsuti GCC või LLVM intermediate code (IR) failide leidmisel välja vastavad ld.bfd või ld.lld linkerid, siis nüüd töötleb Mold IR-faile iseseisvalt ja kasutab Linker Plugin API-d, mida kasutatakse ka GNU ld ja GNU puhul. kulla linkerid. Kui see on sisse lülitatud, on LTO teistest linkijatest vaid veidi kiirem, kuna suurem osa ajast kulub linkimise asemel koodi optimeerimisele.
  • Lisatud tugi RISC-V (RV64) arhitektuurile host- ja sihtplatvormidel.
  • Lisati suvand "--emit-relocs", et võimaldada ümberpaigutamise sektsioonide kopeerimist sisendfailidest väljundfailidesse, et edaspidi linkimisjärgses etapis optimeerida.
  • Lisati suvand "--shuffle-sections", et randomiseerida jaotiste järjekord enne nende aadresside kinnitamist virtuaalses aadressiruumis.
  • Lisatud valikud “--print-dependencies” ja “--print-dependencies=full”, et väljastada CSV-vormingus teave sisendfailide vaheliste sõltuvuste kohta, mida saab kasutada näiteks teatud objektifailide linkimisel ühenduse põhjuste analüüsimiseks või failidevahelise sõltuvuste minimeerimisel.
  • Lisatud "--warn-once" ja "--warn-textrel" valikud.
  • Sõltuvus libxxhashist on eemaldatud.

Allikas: opennet.ru

Lisa kommentaar