Mahafali hayo yalifanyika tarehe 4 Agosti Pori 0.10 — kiunganishi cha bure kilichoandikwa katika Rust na kimeundwa hasa kwa ajili ya programu za ujenzi wa haraka katika LinuxKiunganishi hufanya hatua ya mwisho ya ujenzi: kuchanganya faili za vitu na maktaba katika maktaba ya mwisho inayoweza kutekelezwa au iliyoshirikiwa. Wild inaweza kutumika kama mbadala wa GNU ld, LLD, na Mold, ingawa lengo kuu la watengenezaji ni kuunganisha kwa hatua kwa hatua. bado haijatekelezwa.
Mojawapo ya uvumbuzi mkuu ilikuwa usaidizi wa vigezo --faharasa-ya-gdb na --faharasa-isiyo-ya-gdbKipengele hiki kinapowezeshwa, Wild huunda sehemu ya .gdb_index katika faili ya matokeo yenye faharasa ya taarifa za utatuzi wa matatizo. Hii inaruhusu GDB kupata alama muhimu kwa haraka zaidi katika programu kubwa bila kulazimika kutoa faharasa tofauti baada ya ujenzi. Utekelezaji huu unaunga mkono toleo la 9 la umbizo la Faharasa ya GDB; shughuli za kuchanganua, kuunganisha, na kuandika faharasa zimelinganishwa.
Uandishi wa mtunzi umepanuliwa kwa kiasi kikubwa. Usaidizi umeongezwa kwa:
- /TUPA/ sehemu ili kuondoa sehemu zisizo za lazima za kuingiza data;
- Vichwa vya programu maalum vya PHDRS;
- kazi za SIZEOF_HEADERS, DEFINED na SEGMENT_START;
- neno muhimu la AT na kitendakazi cha LOADADDR;
- misemo ya masharti yenye opereta wa ternary;
- Amri za SORT, SORT_BY_NAME na SORT_BY_ALGNMENT;
- ishara __bss_start;
- templeti za kujaza sehemu za matokeo;
- amri za OUTPUT_FORMAT na OUTPUT_ARCH;
- kaunta kadhaa zinazohusiana na anwani ya sasa.
Utangamano kamili na GNU ld bado haujafikiwa. Kwa mfano, baadhi ya vipengele vya amri ya MEMORY, sehemu za OVERLAY, na baadhi ya mbinu za uwekaji wa sehemu bado hazijakamilika. Wasanidi programu wanafanya kazi hii kando. Jedwali la uwezo unaohitajika kwa kuunganisha kernel Linux.
Utendaji umeboreshwa wakati wa kuhifadhi matokeo ya ujenzi kwenye Btrfs na VFAT. Wild sasa hutumia kiotomatiki modi ya --no-mmap-output-file na haibandiki faili ya matokeo kwenye kumbukumbu. Katika jaribio lililofanywa na msanidi programu la kuunganisha Zed kwenye Btrfs, muda ulipunguzwa kutoka takriban sekunde 2,6–2,8 hadi 1,5–1,8. Hata hivyo, mwandishi wa mabadiliko anaonya kwamba hata baada ya uboreshaji, Btrfs inabaki polepole zaidi kuliko tmpfs katika hali hii; kwa Ext4 na XFS, kwa upande mwingine, kutumia mmap, kulionekana kuwa na faida zaidi.
Wild inaendelea kuhamishwa kwenye miundo na majukwaa mengine. Toleo la majaribio la WebAssembly tayari linaweza kuunganisha programu mbalimbali, huku lango la Mach-O likiweza kuunganisha vitendaji vya msingi. Kazi imeanza kwenye majukwaa lengwa ya biti 32, ambayo yanapaswa kurahisisha zaidi matumizi ya Wild katika uundaji wa mifumo iliyopachikwa. Usindikaji wa awali wa faili za vitu vya PowerPC64 ELFv2 pia umeongezwa, na usaidizi wa Mach-O unaendelea kutengenezwa, ikijumuisha faili za vitu vya ulimwengu wote na uunganishaji wa moja kwa moja na maktaba zinazobadilika. Lango hizi hazipaswi kuchukuliwa kuwa tayari kwa matumizi ya kila siku.
Kiunganishi cha libwild sasa kinaweza kukubali faili za kuingiza na kuhifadhi matokeo moja kwa moja kwenye kumbukumbu. Hii inaruhusu programu zingine kupachika Wild bila lazima kuunda faili za kati kwenye diski. Zaidi ya hayo, maktaba haibadilishi tena mkusanyiko wa nyuzi za Rayon wa kimataifa, na usaidizi wa mgandamizo wa Zstandard unaweza kuzimwa wakati wa ujenzi.
Toleo hili linajumuisha marekebisho mengi ya x86-64, AArch64, RISC-V, na LoongArch64. Marekebisho haya yanajumuisha hitilafu zinazoshughulikia TLS, PLT, LTO, taarifa ya utatuzi iliyobanwa, mpangilio mkubwa, na uhamishaji katika PIE na vitu vilivyoshirikiwa. Ajali zinazoweza kutokea wakati wa uchanganuzi wa hati ya kiungo na hitilafu zinazozalisha sehemu za .tbss, .strtab, na .eh_frame pia zimerekebishwa.
Viungo vya mwitu Linux Kwenye usanifu wa x86-64, AArch64, na RISC-V; usaidizi wa LoongArch64 na PowerPC64LE kwa sasa umeorodheshwa kama wa awali. Kiunganishi kinaweza kusakinishwa kutoka kwa kumbukumbu zilizojengwa tayari, kupitia cargo-binstall, Homebrew, Nix, au kwa amri ya cargo install --locked wild-linker. Msimbo chanzo husambazwa kwa hiari ya mtumiaji. Leseni za Apache 2.0 au MIT.
Chanzo: linux.org.ru
