Wild Linker 0.9

發布發生 Wild Linker 0.9.0 — 一個用 Rust 寫的全新高效能連結器。該版本已發佈在 GitHub 上。 23的五月2026年該專案定位為加速迭代開發的鏈接器:作者最終目標是實現增量鏈接,儘管當前版本尚未實現。代碼採用雙重許可協議發布。 Apache 2.0 / MIT.

Wild 0.9 的主要變化是支持 連結器插件 API這是 Gold 連結器中引入的一個接口,GNU ld 和 Mold 也支援該接口。對於 Wild 來說,這為以下操作鋪平了道路: 連結器插件 LTO — 透過連結器外掛程式進行連結時優化。開發者特別指出,這主要適用於 C、C++ 和混合程式碼項目,而純 Rust 專案通常會在內部執行 LTO(連結時最佳化)。目前該功能仍存在一些已知問題,並且透過插件連結可能會比較慢。

0.9 版本中相當一部分工作與 Wild Beyond 的轉移準備工作有關。 Linux/ELF。 ELF 特有的邏輯已移出抽象層,並且支援工作已經開始。 Mach-O и WebAssembly這些功能尚未準備好投入實際使用,但首批功能已經出現:Mach-O 解析、節和段處理、符號表、代碼簽名、胖二進制,以及對 wasm 節、符號和重定位的初步支持。

Wild Linker 0.9 的主要變化:

  • 支援連結器插件。 新增了對連結器插件 API 的支持,這對於連結器插件 LTO 以及與某些 GCC/GNU ld/Mold 建置腳本的兼容性至關重要。此外,也修正了一些與外掛程式回呼相關的問題,包括全歸檔、ThinLTO、開啟檔案數量限制以及 LTO 期間的死碼移除。

  • 大幅擴展連結器腳本支援。 Wild 實作了 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 的範圍擴展 thunk、處理一些帶有放寬的 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 以及無空格形式的支援。

  • 生成靜態運動物體。 增加了對建立靜態可重定位檔案(仍可參與進一步連結的中間目標檔案)的支援。

  • 在不追求「快速」發布的情況下提升效能。 作者明確指出,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作業伺服器和一些連結腳本。支援增量連結、更複雜的連結腳本、Mach-O等。 Windows 目前被歸類為未實現或未完成的機會。

實際上,Wild 0.9 擴展了與現有建置生態系統的兼容性,開始超越 ELF 格式,並增加了對大型 C/C++ 和混合專案中連結器難以使用的場景的支援。對於 Rust 開發者而言,Wild 仍然具有吸引力,可以作為未來增量連結的潛在基礎;對於系統開發者而言,它也是 GNU ld、LLD 和 Mold 的另一個快速競爭對手。

來源: linux.org.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster