Savvaļas saite 0.9

AtbrÄ«vots Savvaļas saite 0.9.0 — jauns augstas veiktspējas saistÄ«ts rÄ«ks, kas rakstÄ«ts Rust valodā. Laidiens ir pieejams vietnē GitHub. 23 maijā 2026 gadsProjekts ir pozicionēts kā saite iteratÄ«vas izstrādes paātrināŔanai: autori galu galā vēlas panākt pakāpenisku saiteÅ”anu, lai gan paÅ”reizējā versijā tā vēl nav ieviesta. Kods tiek izplatÄ«ts saskaņā ar dubultu licenci. Apache 2.0 / MIT.

Galvenā izmaiņa Wild 0.9 versijā ir atbalsts SaistÄ«tāja spraudņa API, saskarne, kas tika ieviesta Gold saitē un ko atbalsta arÄ« GNU ld un Mold. Wild tas paver ceļu uz saistÄ«tāja spraudņa LTO — saistīŔanas laika optimizācija, izmantojot saistīŔanas spraudni. Izstrādātāji Ä«paÅ”i norāda, ka tas galvenokārt ir noderÄ«gi C, C++ un jaukta koda projektiem, savukārt tÄ«ri Rust projekti parasti veic LTO iekŔēji. Å Ä«s funkcijas atbalstam joprojām ir zināmas problēmas, un saistīŔana, izmantojot spraudni, var bÅ«t lēna.

Ievērojama daļa darba 0.9 versijā bija saistÄ«ta ar sagatavoÅ”anos Wild pārcelÅ”anai ārpus tās. Linux/ELF. ELF specifiskā loÄ£ika ir pārvietota ārpus abstrakciju robežām, un ir uzsākts darbs pie atbalsta. MaŔīnas ātrums Šø WebAssemblyÅ Ä«s iespējas vēl nav gatavas praktiskai lietoÅ”anai, taču pirmie elementi jau ir parādÄ«juÅ”ies: Mach-O parsēŔana, sekciju un segmentu apstrāde, simbolu tabula, koda paraksts, FAT binārais fails, kā arÄ« sākotnējais atbalsts WASM sekcijām, simboliem un pārvietoÅ”anai.

Galvenās izmaiņas Wild Linker 0.9 versijā:

  • Atbalsts saiÅ”u spraudņiem. Pievienots atbalsts saistÄ«tāja spraudņa API, kas ir nepiecieÅ”ams saistÄ«tāja spraudņa LTO un saderÄ«bai ar dažiem GCC/GNU ld/Mold bÅ«vēŔanas skriptiem. Tika arÄ« novērstas dažas problēmas, kas saistÄ«tas ar spraudņu atzvanīŔanas funkcijām, tostarp visa arhÄ«va, ThinLTO, atvērto failu ierobežojuma un miruŔā koda noņemÅ”anas LTO laikā.

  • BÅ«tiska saiÅ”u skriptu atbalsta paplaÅ”ināŔana. Ir ieviestas PROVIDE un PROVIDE_HIDDEN direktÄ«vas, ASSERT parsēŔana un izpilde, atbalsts MEMORY, ORIGIN, LENGTH, LOADADDR, ALIGNOF, SEGMENT_START, K un M sufiksiem skaitliskajos literāļos, loÄ£iskie, bitu un unārie operatori, kā arÄ« saskaņoÅ”ana pēc ievades failu nosaukumiem. Tas tuvina Wild saderÄ«bu ar sarežģītiem saiÅ”u skriptiem, kas bieži atrodami sistēmas programmatÅ«rā un zema lÄ«meņa projektos.

  • Uzlabojumi RISC-V, AArch64, x86-64 un LoongArch64. Pievienota RISC-V izsaukumu relaksācija, HI20 relaksācija, R_RISCV_ALIGN, konfliktējoÅ”u ISA paplaÅ”inājumu pārbaude, papildu AArch64 pārvietoÅ”anas, diapazona paplaÅ”inājuma ātrās reaģēŔanas uzdevumi AArch64, vairāku x86-64 pārvietoÅ”anas apstrāde ar relaksācijām un diapazona un izlÄ«dzināŔanas precizējumi LoongArch64.

  • Jaunas saderÄ«bas opcijas. Pievienots atbalsts --dependency-file, --auxiliary, --exclude-libs, --enable-new-dtags, --disable-new-dtags, --trace, --nmagic, --compress-debug-sections, --pack-dynamic-relocs=relr, --use-android-relr-tags un bezatstarpes formai -o/path.

  • Statiski kustÄ«gu objektu Ä£enerēŔana. Pievienots atbalsts statisku pārvietojamu objektu izveidei — starpposma objektu failiem, kas joprojām var piedalÄ«ties turpmākajā saistīŔanā.

  • Veiktspējas uzlabojumi, nekoncentrējoties uz "ātru" izlaiÅ”anu. Autori nepārprotami norāda, ka 0.9 versijā nebija iekļauti nekādi bÅ«tiski veiktspējas uzlabojumi, taču netika novērota arÄ« degradācija. Lokālās optimizācijas ietver ātru ceļu neglobāliem saskaņotājiem versiju skriptos, atomu operāciju skaita samazināŔanu, paralēlu sadaļu un simbolu adreÅ”u aprēķināŔanu relaksācijas skenēŔanas laikā un jau atrisinātu sadaļu atkārtotas apstrādes samazināŔanu.

  • Daudzi saderÄ«bas labojumi. Novērsta vāju nedefinētu simbolu, .ctors/.dtors, RELRO, versiju skriptu, SFrame, IFUNC, --version/-v, nedefinētu simbolu kļūdu, brÄ«dinājumu, atkļūdoÅ”anas pārvietoÅ”anas, .eh_frame, SHT_SYMTAB_SHNDX, dinamisko objektu statiskās saistīŔanas un vairāku scenāriju ar saistīŔanas skriptiem apstrāde.

  • Dokumentācija un projektu vadÄ«ba. Ir pievienots rÄ«cÄ«bas kodekss, LLM lietoÅ”anas politika, pārvaldÄ«bas dokumentācija, saistÄ«to skriptu atbalsta matrica, instrukcijas par -fuse-ld=wild lietoÅ”anu ar GCC 16.1 un instalēŔanu, izmantojot Brew. Repozitorijs ir arÄ« pārvietots uz atseviŔķu GitHub organizāciju — wild-linker.

Tajā brÄ«dÄ«, MežonÄ«gs oficiāli galvenokārt koncentrējas uz Linux un ELF. Projekta README fails atbalsta x86-64, ARM64, RISC-V riscv64gc un sākotnējais atbalsts LoongArch64 par Linux; var veidot statiskus bināros failus, statisku PIE, dinamiski saistÄ«tus izpildāmos failus un .so failus, darbojas ar atkļūdoÅ”anas informāciju, GNU jobserver un dažiem saistīŔanas skriptiem. Pakāpeniska saistīŔana, sarežģītāki saistīŔanas skripti, Mach-O un Windows paÅ”laik tiek klasificētas kā nerealizētas vai nepabeigtas iespējas.

Praktiski Wild 0.9 paplaÅ”ina saderÄ«bu ar esoÅ”o bÅ«vēŔanas ekosistēmu, sāk paplaÅ”ināties ārpus ELF un pievieno atbalstu scenārijiem, kas apgrÅ«tina saistÄ«tāja izmantoÅ”anu lielos C/C++ un jauktos projektos. Rust izstrādātājiem Wild joprojām ir interesants kā potenciāla bāze turpmākai pakāpeniskai saistīŔanai, bet sistēmu izstrādātājiem – kā vēl viens ātrs konkurents GNU ld, LLD un Mold.

Avots: linux.org.ru

Iegādājieties uzticamu mitināŔanu vietnēm ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa vietņu mitināŔanu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster