Uvolnění proběhlo Divoký linker 0.9.0 — nový vysoce výkonný linker napsaný v Rustu. Verze je uvedena na GitHubu. 23 května 2026 rokProjekt je prezentován jako linker pro urychlení iterativního vývoje: autoři chtějí v konečném důsledku dosáhnout inkrementálního linkování, ačkoli to v aktuální verzi ještě není implementováno. Kód je distribuován pod duální licencí. Apache 2.0 / MIT.
Hlavní změnou ve Wild 0.9 je podpora API pluginu linkeru, rozhraní zavedené v linkeru Gold a podporované také GNU ld a Mold. Pro Wild to otevírá cestu k linker-plugin LTO — optimalizace doby linkování pomocí pluginu linkeru. Vývojáři konkrétně uvádějí, že je to primárně užitečné pro projekty v jazyce C, C++ a smíšeném kódu, zatímco čisté projekty v Rustu obvykle provádějí LTO interně. Podpora této funkce má stále známé problémy a linkování pomocí pluginu může být pomalé.
Významná část práce ve verzi 0.9 se týkala příprav na převod Wild za hranice... Linux/ELF. Logika specifická pro ELF byla přesunuta mimo abstrakce a začala práce na její podpoře. Mach-O и WebAssemblyTyto funkce ještě nejsou připraveny k praktickému využití, ale první prvky se již objevily: parsování Mach-O, zpracování sekcí a segmentů, tabulka symbolů, podpis kódu, binární soubor FAT a také počáteční podpora pro sekce, symboly a relokace wasm.
Klíčové změny ve Wild Linkeru 0.9:
Podpora pluginů linkerů. Přidána podpora API pluginů linkerů, která je nezbytná pro LTO linker-pluginů a kompatibilitu s některými skripty pro sestavení GCC/GNU ld/Mold. Opraveny byly také některé problémy související s zpětnými voláními pluginů, včetně celého archivu, ThinLTO, limitu otevřených souborů a odstraňování nefunkčního kódu během LTO.
Významné rozšíření podpory linkerových skriptů. Jsou implementovány direktivy PROVIDE a PROVIDE_HIDDEN, parsování a provádění ASSERT, podpora pro přípony MEMORY, ORIGIN, LENGTH, LOADADDR, ALIGNOF, SEGMENT_START, K a M v numerických literálech, logické, bitové a unární operátory a porovnávání podle názvů vstupních souborů. To přibližuje Wild kompatibilitě se složitými linkovými skripty, které se často nacházejí v systémovém softwaru a nízkoúrovňových projektech.
Vylepšení pro RISC-V, AArch64, x86-64 a LoongArch64. Přidána relaxace volání RISC-V, relaxace HI20, R_RISCV_ALIGN, kontrola konfliktních rozšíření ISA, další relokace AArch64, thunky rozšíření rozsahu pro AArch64, zpracování řady relokací x86-64 s relaxacemi a vyjasnění rozsahu a zarovnání pro LoongArch64.
Nové možnosti kompatibility. Přidána podpora pro --dependency-file, --auxiliary, --exclude-libs, --enable-new-dtags, --disable-new-dtags, --trace, --nmagic, --compress-debug-sections, --pack-dynamic-relocs=relr, --use-android-relr-tags a tvar -o/path bez mezer.
Generování staticky se pohybujících objektů. Přidána podpora pro vytváření statických přemístitelných objektů – mezilehlých objektových souborů, které se stále mohou podílet na dalším linkování.
Vylepšení výkonu bez zaměření na „rychlé“ vydání. Autoři výslovně poznamenávají, že verze 0.9 nezahrnovala žádná zásadní vylepšení výkonu, ale nedošlo ani k žádnému zhoršení. Lokální optimalizace zahrnují rychlou cestu pro neglobální porovnávače ve verzových skriptech, snížení počtu atomických operací, paralelní výpočet adres sekcí a symbolů během relaxačních skenů a snížené opětovné zpracování již vyřešených sekcí.
Mnoho oprav kompatibility. Opraveno zpracování slabých nedefinovaných symbolů, .ctors/.dtors, RELRO, skriptů verzí, SFrame, IFUNC, --version/-v, chyb nedefinovaných symbolů, varování, ladicích relokací, .eh_frame, SHT_SYMTAB_SHNDX, statického linkování dynamických objektů a řady scénářů s linkerovými skripty.
Dokumentace a projektový management. Byl přidán kodex chování, zásady používání LLM, dokumentace governance, matice podpory linkerových skriptů, pokyny pro použití -fuse-ld=wild s GCC 16.1 a instalaci přes Brew. Repozitář byl také přesunut do samostatné organizace GitHub, wild-linker.
v současné době Wild oficiálně zaměřený především na Linux a ELF. Soubor README projektu uvádí podporu x86-64, ARM64, RISC-V riscv64gc a počáteční podporu LoongArch64 na Linux; umí vytvářet statické binární soubory, static-PIE, dynamicky linkované spustitelné soubory a soubory .so, pracuje s ladicími informacemi, GNU jobserverem a některými linkerovými skripty. Inkrementální linkování, složitější linkerové skripty, Mach-O a Windows jsou v současné době klasifikovány jako nerealizované nebo nedokončené příležitosti.
V praxi Wild 0.9 rozšiřuje kompatibilitu se stávajícím ekosystémem sestavení, začíná se rozšiřovat za hranice ELF a přidává podporu pro scénáře, které ztěžují použití linkeru ve velkých C/C++ a smíšených projektech. Pro vývojáře v Rustu zůstává Wild zajímavý jako potenciální základna pro budoucí inkrementální linkování a pro vývojáře systémů jako další rychlý konkurent GNU ld, LLD a Mold.
Zdroj: linux.org.ru
