Liberigo de Mold 1.1 ligilo, evoluigita fare de LLVM lld

Eldonaĵo de la Mold-ligilo estis publikigita, kiu povas esti uzata kiel pli rapida, travidebla anstataŭaĵo por la GNU-ligilo en Linuksaj sistemoj. La projekto estas disvolvita de la aŭtoro de la ligilo LLVM lld. Ĉefa trajto de Mold estas la tre alta rapideco de ligado de objektodosieroj, rimarkeble antaŭ la GNU-oraj kaj LLVM lld-ligiloj (ligado en Mold estas farita je rapideco nur duone same rapide ol simple kopiado de dosieroj per la cp-ilaĵo). La kodo estas skribita en C++ (C++20) kaj distribuita sub la AGPLv3-licenco.

En la nova versio:

  • Aldonita subteno por optimumigo ĉe la liga stadio (LTO, Link Time Optimization). LTO-optimumigoj malsamas konsiderante la staton de ĉiuj dosieroj implikitaj en la konstruprocezo, dum tradiciaj optimumigaj reĝimoj optimumigas ĉiun dosieron aparte kaj ne konsideras la kondiĉojn por voki funkciojn difinitajn en aliaj dosieroj. Dum antaŭe, kiam GCC aŭ LLVM meza kodo (IR) dosieroj estis trovitaj, la ekvivalentaj ld.bfd aŭ ld.lld ligiloj estis nomitaj, nun Mold prilaboras IR-dosierojn sendepende kaj uzas la Linker Plugin API, ankaŭ uzita en la GNU ld kaj GNU oraj ligiloj. Kiam ĝi estas ebligita, LTO estas nur marĝene pli rapida ol aliaj ligiloj ĉar la plejparto de la tempo estas elspezita farante kodoptimumigojn prefere ol ligi.
  • Aldonita subteno por RISC-V (RV64) arkitekturo sur la gastiganto kaj celplatformoj.
  • Aldonis la opcion "--emit-relocs" por ebligi kopiadon de translokigaj sekcioj de enigdosieroj al eligdosieroj por posta aplikado de optimumigoj ĉe la post-liga stadio.
  • Aldonis la opcion "--shuffle-sections" por randomigi la ordon de sekcioj antaŭ fiksi iliajn adresojn en la virtuala adresspaco.
  • Aldonitaj opcioj "--print-dependencies" kaj "--print-dependencies=full" por eligi en CSV-formato informojn pri dependecoj inter enigdosieroj, kiuj, ekzemple, povas esti uzataj por analizi la kialojn de konekto kiam ligas iujn objektodosierojn. aŭ dum plenumado de minificación laboro dependecoj inter dosieroj.
  • Aldonitaj opcioj "--warn-once" kaj "--warn-textrel".
  • Forigita dependeco de libxxhash.

fonto: opennet.ru

Aldoni komenton