bk99.de entertain the web since 1997

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

Read the original article

Search the Web Archive