|
|
|
|
|
by jeffbee
1322 days ago
|
|
I think there is a prima facie case that nobody* cares about linker speed. bfd is a terrible linker written by weirdos and it's still the default linker on every mainstream Linux. You'd think that an organization like Canonical would benefit from faster builds, but they still use bfd. Not even gold, which has been available for 16 years. Definitely not lld, which has been around for 5 years. The amount of performance they are already leaving on the table is huge, so who would expect them to be suddenly interested in build performance? * for values of "nobody" excluding Google. |
|
Also people, at least those same users, had really strong views on bugs in linkers. If the game is broken because the linker trashed it, you've only worked that out after debugging through your own code and through the compiler output, by which point you're well past patient and understanding.
Sadly for this project I consider linkers to be a fundamental design mistake. Or at least obsolete. Lowering to machine code before combining files wins you runtime overhead and implementation obfuscation in exchange for reduced memory consumption. Linking an intermediate form then writing machine code (in elf if you like) from that single blob is better. I'm pretty sure it can be done in lower memory overhead than linking machine code if you're so inclined.