Mold 1.1 linkera izlaišana, ko izstrādājis LLVM lld

Ir publicēts Mold linkera izlaidums, ko var izmantot kā ātrāku, caurspīdīgu GNU linkera aizstājēju Linux sistēmās. Projektu izstrādā LLVM lld linkera autors. Galvenā Mold iezīme ir ļoti lielais objektu failu saistīšanas ātrums, ievērojami apsteidzot GNU gold un LLVM lld linkerus (saites veidošana programmā Mold tiek veikta ar ātrumu tikai uz pusi ātrāk nekā vienkārša failu kopēšana ar cp utilītu). Kods ir rakstīts C++ (C++20) valodā un tiek izplatīts saskaņā ar AGPLv3 licenci.

Jaunajā versijā:

  • Pievienots atbalsts optimizācijai saistīšanas posmā (LTO, Link Time Optimization). LTO optimizācijas atšķiras, ņemot vērā visu veidošanas procesā iesaistīto failu stāvokli, savukārt tradicionālie optimizācijas režīmi optimizē katru failu atsevišķi un neņem vērā citos failos definētos funkciju izsaukšanas nosacījumus. Ja iepriekš, kad tika atrasti GCC vai LLVM starpkoda (IR) faili, tika izsaukti atbilstošie ld.bfd vai ld.lld saiti, tagad Mold apstrādā IR failus neatkarīgi un izmanto Linker Plugin API, ko izmanto arī GNU ld un GNU. zelta linkeri. Kad tas ir iespējots, LTO ir tikai nedaudz ātrāks nekā citi saistītāji, jo lielākā daļa laika tiek pavadīta koda optimizēšanai, nevis saistīšanai.
  • Pievienots atbalsts RISC-V (RV64) arhitektūrai resursdatora un mērķa platformās.
  • Pievienota opcija “--emit-relocs”, lai iespējotu pārvietošanas sadaļu kopēšanu no ievades failiem uz izvades failiem turpmākai optimizācijas piemērošanai pēcsaistes posmā.
  • Pievienota opcija “--shuffle-sections”, lai nejauši sakārtotu sadaļu secību pirms to adrešu fiksēšanas virtuālajā adrešu telpā.
  • Pievienotas opcijas “--print-dependencies” un “--print-dependencies=full”, lai CSV formātā izvadītu informāciju par atkarībām starp ievades failiem, ko, piemēram, var izmantot, lai analizētu savienojuma iemeslus, saistot noteiktus objektu failus. vai veicot atkarību starp failiem samazināšanu.
  • Pievienotas opcijas "--warn-once" un "--warn-textrel".
  • Noņemta atkarība no libxxhash.

Avots: opennet.ru

Pievieno komentāru