Суллагдсан Зэрлэг холбоос 0.9.0 — Rust хэл дээр бичигдсэн шинэ өндөр хүчин чадалтай холбогч. Хувилбар нь GitHub дээр жагсаагдсан. 23 нь 2026 байж болноТөслийг давталтын хөгжлийг хурдасгах холбоос болгон байрлуулсан: зохиогчид эцсийн дүндээ инкрементал холбоос үүсгэхийг хүсч байгаа боловч одоогийн хувилбарт хараахан хэрэгжээгүй байна. Кодыг давхар лицензийн дагуу түгээдэг. Апачи 2.0 / MIT.
Wild 0.9 хувилбарын гол өөрчлөлт бол дэмжлэг юм Холбогч залгаас API, Gold холбогч дээр танилцуулагдсан бөгөөд GNU ld болон Mold-оор дэмжигдсэн интерфэйс. Wild-ийн хувьд энэ нь замыг нээж өгдөг холбогч-залгаас LTO — холбоос залгаасаар дамжуулан холбоосын цагийн оновчлол. Хөгжүүлэгчид үүнийг голчлон C, C++ болон холимог кодын төслүүдэд хэрэгтэй гэж тусгайлан мэдэгдсэн бол цэвэр Rust төслүүд нь ихэвчлэн LTO-г дотооддоо гүйцэтгэдэг. Энэ функцийг дэмжих нь мэдэгдэж буй асуудлуудтай хэвээр байгаа бөгөөд залгаасаар дамжуулан холбох нь удаан байж болно.
0.9 дэх ажлын нэлээд хэсэг нь Зэрлэг ангалыг шилжүүлэх бэлтгэл ажилтай холбоотой байв. Linux/ELF. ELF-д хамаарах логикийг хийсвэрлэлээс гадуур гаргаж, дэмжлэгийн ажил эхэлсэн. Мах-О и WebAssemblyЭдгээр боломжууд практик хэрэглээнд хараахан бэлэн болоогүй байгаа ч анхны элементүүд аль хэдийн гарч ирсэн: Mach-O задлан шинжлэх, хэсэг болон сегментийн боловсруулалт, тэмдэгтийн хүснэгт, кодын гарын үсэг, өөх хоёртын файл, мөн wasm хэсэг, тэмдэгт болон нүүлгэн шилжүүлэлтийн анхны дэмжлэг.
Wild Linker 0.9-ийн гол өөрчлөлтүүд:
Холбогч залгаасуудыг дэмжих. Холбогч-залгаас LTO болон зарим GCC/GNU ld/Mold бүтээх скриптүүдтэй нийцтэй байхын тулд шаардлагатай холбоос залгаасын API-уудын дэмжлэгийг нэмсэн. Мөн бүхэл бүтэн архив, ThinLTO, нээлттэй файлын хязгаар, LTO-ийн үед үхсэн кодыг устгах зэрэг залгаасын буцаан дуудалттай холбоотой зарим асуудлыг зассан.
Холбогч скриптийн дэмжлэгийг томоохон хэмжээгээр өргөжүүлсэн. PROVIDE болон PROVIDE_HIDDEN удирдамжууд, ASSERT задлан шинжлэх болон гүйцэтгэх, MEMORY, ORIGIN, LENGTH, LOADADDR, ALIGNOF, SEGMENT_START-г дэмжих, тоон литерал дахь K болон M дагаварууд, логик, битийн болон нэг операторууд, мөн оролтын файлын нэрээр тохируулах зэрэг ажлуудыг хэрэгжүүлсэн. Энэ нь Wild-ийг системийн програм хангамж болон доод түвшний төслүүдэд ихэвчлэн байдаг нарийн төвөгтэй холбоос скриптүүдтэй нийцтэй байдалд ойртуулж байна.
RISC-V, AArch64, x86-64 болон LoongArch64-ийн сайжруулалтууд. RISC-V дуудлагын сулралт, HI20 сулралт, R_RISCV_ALIGN, зөрчилтэй ISA өргөтгөлүүдийг шалгах, AArch64 нэмэлт нүүлгэн шилжүүлэлтүүд, AArch64-д зориулсан хүрээний өргөтгөлийн тохиргоо, сулралтай хэд хэдэн x86-64 нүүлгэн шилжүүлэлтийг зохицуулах, LoongArch64-д зориулсан хүрээ болон тохируулгын тодруулга зэргийг нэмсэн.
Шинэ нийцтэй байдлын сонголтууд. --dependency-file, --auxiliary, --exclude-libs, --enable-new-dtags, --disable-new-dtags, --trace, --nmagic, --compress-debug-sections, --pack-dynamic-relocs=relr, --use-android-relr-tags болон зайгүй -o/path хэлбэрийг дэмжсэн.
Статик хөдөлгөөнтэй объектуудыг үүсгэх. Цаашдын холболтод оролцож болох завсрын объектын файлууд болох статик нүүлгэн шилжүүлэх боломжтой файлуудыг үүсгэх дэмжлэг нэмэгдсэн.
"Хурдан" хувилбарт анхаарлаа төвлөрүүлэхгүйгээр гүйцэтгэлийн сайжруулалт. Зохиогчид 0.9 хувилбарт гүйцэтгэлийн томоохон сайжруулалт ороогүй боловч ямар ч доройтол гараагүй гэдгийг тодорхой тэмдэглэжээ. Орон нутгийн оновчлолд хувилбарын скриптүүдэд глобал бус тохируулагчдад зориулсан хурдан зам, атомын үйлдлүүдийн тоог багасгах, сулруулалтын сканнердах үед хэсэг болон тэмдэгтийн хаягийг зэрэгцээ тооцоолох, аль хэдийн шийдэгдсэн хэсгүүдийг дахин боловсруулахыг багасгах зэрэг орно.
Олон тооны нийцтэй байдлын засварууд. Сул тодорхойлогдоогүй тэмдэгтүүд, .ctors/.dtors, RELRO, хувилбарын скриптүүд, SFrame, IFUNC, --version/-v, тодорхойлогдоогүй тэмдэгтийн алдаа, анхааруулга, дибаг хийх нүүлгэн шилжүүлэлт, .eh_frame, SHT_SYMTAB_SHNDX, динамик объектын статик холболт, болон холбогч скриптүүдтэй хэд хэдэн хувилбарын зохицуулалтыг зассан.
Баримтжуулалт ба төслийн менежмент. Зан үйлийн дүрэм, LLM хэрэглээний бодлого, засаглалын баримт бичиг, холбогч скриптийн дэмжлэгийн матриц, GCC 16.1 дээр -fuse-ld=wild ашиглах заавар, Brew-ээр дамжуулан суулгах зааврыг нэмсэн. Мөн репозиторийг тусдаа GitHub байгууллага болох wild-linker руу шилжүүлсэн.
Одоогоор зэрлэг албан ёсоор голчлон анхаарлаа хандуулсан Linux болон ELF. Төслийн README нь дэмжлэг үзүүлдэг гэж мэдэгджээ x86-64, ARM64, RISC-V riscv64gc болон анхны дэмжлэг LoongArch64 тухай Linux; статик хоёртын файлууд, статик-PIE, динамикаар холбогдсон гүйцэтгэгдэх файлууд болон .so файлуудыг бүтээж чадна, дибаг хийх мэдээлэл, GNU jobserver болон зарим холбогч скриптүүдтэй ажилладаг. Нэмэлт холбоос, илүү төвөгтэй холбогч скриптүүд, Mach-O болон Windows одоогоор хэрэгжээгүй эсвэл дуусаагүй боломжууд гэж ангилагддаг.
Практик утгаараа Wild 0.9 нь одоо байгаа бүтээх экосистемтэй нийцтэй байдлыг өргөжүүлж, ELF-ээс цааш өргөжиж эхэлж, холбогчийг том C/C++ болон холимог төслүүдэд ашиглахад хэцүү болгодог хувилбаруудад дэмжлэг нэмдэг. Rust хөгжүүлэгчдийн хувьд Wild нь ирээдүйн инкрементал холболтын боломжит суурь болж, системийн хөгжүүлэгчдийн хувьд GNU ld, LLD, болон Mold-ийн өөр нэг хурдан өрсөлдөгч болох нь сонирхолтой хэвээр байна.
Эх сурвалж: linux.org.ru
