Pagpagawas sa Mold 1.1 linker, nga gimugna sa LLVM lld

Usa ka pagpagawas sa Mould linker ang gipatik, nga mahimong gamiton isip mas paspas, transparent nga kapuli sa GNU linker sa Linux system. Ang proyekto gimugna sa tagsulat sa LLVM lld linker. Usa ka mahinungdanong bahin sa Mould mao ang taas kaayo nga tulin sa pag-link sa mga file sa butang, mamatikdan nga nag-una sa GNU gold ug LLVM lld linkers (ang pag-link sa Mold gihimo sa usa ka tulin nga katunga lamang sa paspas nga pagkopya sa mga file gamit ang cp utility). Ang code gisulat sa C++ (C++20) ug giapod-apod ubos sa lisensya sa AGPLv3.

Sa bag-ong bersyon:

  • Gidugang nga suporta alang sa pag-optimize sa yugto sa pag-link (LTO, Link Time Optimization). Ang mga pag-optimize sa LTO lahi pinaagi sa pagkonsiderar sa kahimtang sa tanan nga mga file nga nahilambigit sa proseso sa pagtukod, samtang ang tradisyonal nga mga mode sa pag-optimize nag-optimize sa matag file nga gilain ug wala magtagad sa mga kondisyon alang sa mga function sa pagtawag nga gipasabut sa ubang mga file. Samtang kaniadto, sa dihang nakit-an ang GCC o LLVM intermediate code (IR) nga mga file, ang katugbang nga ld.bfd o ld.lld linker gitawag, karon ang Mold nagproseso sa IR nga mga file nga independente ug naggamit sa Linker Plugin API, gigamit usab sa GNU ld ug GNU bulawan nga mga linker. Kung mahimo, ang LTO labi ka paspas kaysa ubang mga link tungod kay kadaghanan sa oras gigugol sa paghimo sa mga pag-optimize sa code kaysa pag-link.
  • Gidugang nga suporta alang sa RISC-V (RV64) nga arkitektura sa host ug target nga mga platform.
  • Gidugang ang "--emit-relocs" nga kapilian aron mahimo ang pagkopya sa mga seksyon sa relokasyon gikan sa mga file sa input ngadto sa mga file sa output alang sa sunod nga aplikasyon sa mga pag-optimize sa yugto sa post-linking.
  • Gidugang ang "--shuffle-sections" nga kapilian aron i-randomize ang han-ay sa mga seksyon sa dili pa ayuhon ang ilang mga adres sa virtual address space.
  • Gidugang nga mga kapilian nga "--print-dependencies" ug "--print-dependencies = puno" sa pag-output sa CSV format nga impormasyon bahin sa mga dependency tali sa mga input file, nga, pananglitan, mahimong magamit sa pag-analisar sa mga hinungdan sa koneksyon kung mag-link sa piho nga mga file sa butang. o kung nagpatuman sa mga dependency sa trabaho sa minification tali sa mga file.
  • Gidugang ang "--warn-once" ug "--warn-textrel" nga mga kapilian.
  • Gitangtang ang pagsalig sa libxxhash.

Source: opennet.ru

Idugang sa usa ka comment