4 ms·
Best source I've read is Ian Taylor's blog about his work on the gold linker: https://www.airs.com/blog/archives/38 https://www.airs.com/blog/archives/38 "Onc
by canucker2016 3y ago
Best source I've read is Ian Taylor's blog about his work on the gold linker:
https://www.airs.com/blog/archives/38 https://www.airs.com/blog/archives/38
"Once again, the goal is speed, in this case being faster than my second linker. That linker has been significantly slowed down over the years by adding support for ELF and for shared libraries. This support was patched in rather than being designed in. Future plans for the new linker include support for incremental linking–which is another way of increasing speed."
Just think of the apps that were written in early Unix days - simple single-purpose apps, probably just one source code file , just one obj and libc to link together, no shared libs et al.
The linker code just grew organically as new "must-have" features were added. Correctness of features was more important than speed esp. when spinning rust was a limiting factor.
- canucker2016 3y agoA PDF for the lld linker has some more info on speedups over ld and gold: See https://llvm.org/devmtg/2017-10/slides/Ueyama-lld.pdf https://llvm.org/devmtg/2017-10/slides/Ueyama-lld.pdf