Relink 0.15.1 发布了!也希望借助这个版本,吸引更多对底层系统开发感兴趣的朋友一起参与进来。
Relink 是一个 Rust 写的 no_std ELF loader / runtime linker / JIT linker。它不只是 dlopen 的替代品,而是希望把 ELF 加载、依赖解析、符号查找、重定位、scan-first 布局规划这些能力拆成可组合的模块。
(3 封私信 / 1 条消息) Relink:Rust ELF 加载器与 Runtime/JIT 链接器 - 知乎
https://zhuanlan.zhihu.com/p/251523947380.15.1 主要变化:
-
新增 Linker::load() 运行时依赖加载流程
-
新增 SearchPathResolver,支持 DT_RUNPATH / DT_RPATH 和 $ORIGIN
-
新增 scan-first 链接规划,可以在映射前做 section 布局和 materialization
-
支持 synthetic module,用于宿主符号、bridge symbol、测试和自定义链接场景
-
改进 relocation error、文档、示例和测试覆盖
-
发布了 mini-loader 和 windows-elf-loader companion crates
后续还有很多适合入门的工作,比如 ELF dynamic flags、更多架构支持、文档示例、测试 fixture 等。
Good first issue:
GitHub:
https://github.com/weizhiao/Relinkgithub.com/weizhiao/Relink
https://github.com/weizhiao/Relinkgithub.com/weizhiao/RelinkCrates.io:
elf_loader - crates.io: Rust Package Registry
https://crates.io/crates/elf_loader
欢迎感兴趣的朋友一起贡献!