Wild: a fast linker for Linux
Summary
David Lattimore develops Wild as a fast Rust linker for Linux with the long-term goal of incremental linking. Wild supports Linux on x86-64, ARM64 and RISC-V. LoongArch64 and PPC64LE have initial support.
Ideas
- Parallel processing shortens link times of large Rust and C++ programs.
- Rust is meant to keep the complexity of a future incremental linker manageable.
- Wild produces static, dynamic and position-independent ELF binaries.
- Partial linker script support currently limits some existing builds.
- An ELF comment section reveals the linker actually used.
Insights
- Build speed affects the development flow as much as compiler performance.
- Swapping toolchain components requires compatibility tests, not just attractive benchmarks.
- Incremental linking shifts optimisation from the overall result to the changes.
Facts
- Incremental linking is a stated goal but has not yet been implemented.
Recommendations
- Test Wild against complete build, test and debug workflows.
- Measure link times on tmpfs and on real storage separately.
References
Links to the original source and the Web Archive open in a new tab.