Izdanje Mold 1.1 linkera, razvijen od strane LLVM lld

Objavljeno je izdanje Mold linkera koji se može koristiti kao brža, transparentna zamjena za GNU linker na Linux sistemima. Projekat je razvio autor LLVM lld linkera. Ključna karakteristika Mold-a je vrlo velika brzina povezivanja objektnih datoteka, znatno ispred linkera GNU gold i LLVM lld (povezivanje u Mold-u se izvodi brzinom koja je samo upola manja od jednostavnog kopiranja datoteka pomoću cp uslužnog programa). Kod je napisan u C++ (C++20) i distribuiran pod AGPLv3 licencom.

U novoj verziji:

  • Dodata podrška za optimizaciju u fazi povezivanja (LTO, Link Time Optimization). LTO optimizacije se razlikuju uzimajući u obzir stanje svih fajlova uključenih u proces izgradnje, dok tradicionalni načini optimizacije optimizuju svaki fajl posebno i ne uzimaju u obzir uslove za pozivanje funkcija definisanih u drugim datotekama. Dok su ranije, kada su pronađene GCC ili LLVM datoteke srednjeg koda (IR), pozivani su odgovarajući ld.bfd ili ld.lld linkeri, sada Mold samostalno obrađuje IR datoteke i koristi API dodatka za povezivanje, koji se također koristi u GNU ld i GNU zlatni linkeri. Kada je omogućen, LTO je samo neznatno brži od drugih linkera jer se većina vremena troši na optimizaciju koda, a ne na povezivanje.
  • Dodata podrška za RISC-V (RV64) arhitekturu na host i ciljnoj platformi.
  • Dodata opcija “--emit-relocs” kako bi se omogućilo kopiranje sekcija relokacije iz ulaznih datoteka u izlazne datoteke za naknadnu primjenu optimizacija u fazi post-linkovanja.
  • Dodata je opcija “--shuffle-sections” za nasumični redoslijed sekcija prije fiksiranja njihovih adresa u virtuelnom adresnom prostoru.
  • Dodane opcije “--print-dependencies” i “--print-dependencies=full” za izlaz u CSV formatu informacija o zavisnostima između ulaznih datoteka, koje se, na primjer, mogu koristiti za analizu razloga za povezivanje prilikom povezivanja određenih objektnih datoteka ili kada se izvršavaju zavisnosti rada minifikacije između datoteka.
  • Dodane opcije "--warn-once" i "--warn-textrel".
  • Uklonjena ovisnost o libxxhash.

izvor: opennet.ru

Dodajte komentar