Vabastamine toimus Metsik linker 0.9.0 — uus suure jõudlusega linker, mis on kirjutatud Rustis. Väljalase on leitav GitHubist. 23 mai 2026 aastaProjekt on positsioneeritud linkerina iteratiivse arenduse kiirendamiseks: autorid soovivad lõppkokkuvõttes saavutada inkrementaalse linkimise, kuigi praeguses versioonis seda veel rakendatud pole. Koodi levitatakse topeltlitsentsi alusel. Apache 2.0 / MIT.
Wild 0.9 peamine muudatus on tugi Linkeri plugina API, liides, mis tutvustati Goldi linkeris ning mida toetavad ka GNU ld ja Mold. Wildi jaoks avab see tee linkeri plugin LTO — linkimisaja optimeerimine linkimisplugina kaudu. Arendajad väidavad konkreetselt, et see on kasulik peamiselt C, C++ ja segakoodiga projektide jaoks, samas kui puhtad Rusti projektid teostavad LTO-d tavaliselt sisemiselt. Selle funktsiooni toel on endiselt teadaolevaid probleeme ja linkimine plugina kaudu võib olla aeglane.
Märkimisväärne osa versioonis 0.9 tehtud tööst oli seotud ettevalmistustega Wildi üleandmiseks kaugemale. Linux/ELF. ELF-spetsiifiline loogika on viidud abstraktsioonidest väljapoole ja toe kallal on tööd alustatud. Mach-O и WebAssemblyNeed võimalused pole veel praktiliseks kasutamiseks valmis, kuid esimesed elemendid on juba ilmunud: Mach-O parsimine, sektsioonide ja segmentide töötlemine, sümbolitabel, koodisignatuur, FAT binaarfail, samuti esialgne tugi wasm-sektsioonidele, sümbolitele ja ümberpaigutustele.
Peamised muudatused Wild Linker 0.9-s:
Linkeri pluginate tugi. Lisatud linkeri pluginate API-de tugi, mis on vajalik linkeri pluginate LTO jaoks ja ühildub mõnede GCC/GNU ld/Mold ehitusskriptidega. Samuti parandati mõned pluginate tagasihelistamisega seotud probleemid, sh kogu arhiiv, ThinLTO, avatud failide piirang ja surnud koodi eemaldamine LTO ajal.
Linkeriskriptide toe oluline laiendamine. Rakendatud on PROVIDE ja PROVIDE_HIDDEN direktiivid, ASSERT parsimine ja täitmine, tugi MEMORY, ORIGIN, LENGTH, LOADADDR, ALIGNOF, SEGMENT_START, K ja M järelliidetele numbrilistes literaalides, loogilised, bitipõhised ja unaarsed operaatorid ning vastete leidmine sisendfailide nimede järgi. See lähendab Wildi ühilduvust keerukate linkiskriptidega, mida sageli leidub süsteemitarkvaras ja madala taseme projektides.
RISC-V, AArch64, x86-64 ja LoongArch64 täiustused. Lisatud RISC-V kõnede lõdvendamine, HI20 lõdvendamine, R_RISCV_ALIGN, vastuoluliste ISA laienduste kontrollimine, täiendavad AArch64 ümberpaigutused, ulatuse laiendamise lühikäsklused AArch64 jaoks, mitmete x86-64 ümberpaigutuste käsitlemine lõdvendustega ning ulatuse ja joondamise selgitused LoongArch64 jaoks.
Uued ühilduvusvalikud. Lisatud tugi järgmistele elementide: --dependency-file, --auxiliary, --exclude-libs, --enable-new-dtags, --disable-new-dtags, --trace, --nmagic, --compress-debug-sections, --pack-dynamic-relocs=relr, --use-android-relr-tags ja tühikuta vorm -o/path.
Staatiliselt liikuvate objektide genereerimine. Lisatud tugi staatiliste ümberpaigutatavate objektide loomiseks – need on vahepealsed objektifailid, mis saavad edasises linkimises osaleda.
Jõudluse täiustused ilma "kiire" väljalaske peale keskendumata. Autorid märgivad selgesõnaliselt, et versioon 0.9 ei sisaldanud olulisi jõudluse parandusi, kuid ka halvenemist ei täheldatud. Lokaalsed optimeerimised hõlmavad kiiremat teed mitte-globaalsete vastete otsijatele versiooniskriptides, aatomioperatsioonide arvu vähendamist, sektsiooni- ja sümboliaadresside paralleelset arvutamist relaksatsiooniskaneerimise ajal ning juba lahendatud sektsioonide vähendatud uuesti töötlemist.
Paljud ühilduvusparandused. Parandatud nõrkade määratlemata sümbolite, .ctors/.dtors, RELRO, versiooniskriptide, SFrame'i, IFUNCi, --version/-v, määratlemata sümbolite vigade, hoiatuste, silumisülekandmiste, .eh_frame'i, SHT_SYMTAB_SHNDXi, dünaamilise objekti staatilise linkimise ja mitmete linkeriskriptidega stsenaariumide käsitlemine.
Dokumentatsioon ja projektijuhtimine. Lisatud on käitumisjuhend, LLM-i kasutuspoliitika, juhtimisdokumentatsioon, linkeriskriptide tugimaatriks, juhised -fuse-ld=wild kasutamiseks GCC 16.1-s ja installimine Brew kaudu. Samuti on repositoorium teisaldatud eraldi GitHubi organisatsiooni, wild-linker.
Praegu Metsik ametlikult keskendunud peamiselt Linux ja ELF. Projekti README failis on tugi x86-64, ARM64, RISC-V riscv64gc ja esialgne tugi LoongArch64 edasi Linux; oskab luua staatilisi binaarfaile, static-PIE-d, dünaamiliselt lingitud käivitatavaid faile ja .so-faile, töötab silumisteabe, GNU tööserveri ja mõnede linkeriskriptidega. Inkrementaalne linkimine, keerukamad linkeriskriptid, Mach-O ja Windows on praegu liigitatud realiseerimata või lõpetamata müügivõimalusteks.
Praktikas laiendab Wild 0.9 ühilduvust olemasoleva ehitusökosüsteemiga, hakkab laienema ELF-ist kaugemale ja lisab tuge stsenaariumidele, mis muudavad linkeri kasutamise suurtes C/C++ ja segaprojektides keeruliseks. Rusti arendajate jaoks on Wild endiselt huvitav potentsiaalse alusena tulevaseks inkrementaalseks linkimiseks ning süsteemiarendajate jaoks kui järjekordne kiire konkurent GNU ld-le, LLD-le ja Moldile.
Allikas: linux.org.ru
