发布发生 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 特有的逻辑已移出抽象层,并且支持工作已经开始。 马赫-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 以及无空格形式 -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`。
在此刻, Wild!!! 官方主要关注点是 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
