4 ms·
2008: Gold, a new linker, intended to be faster than Gnu LD 2015(?): Lld a drop in replacement linker, at least 2x as fast as Gold 2021: mold, a new linker, s
by ajb 2y ago
2008: Gold, a new linker, intended to be faster than Gnu LD
2015(?): Lld a drop in replacement linker, at least 2x as fast as Gold
2021: mold, a new linker, several times faster than lld
2025: wild, a new linker...
- dundarious 2y agoFor windows, there is also [The RAD Linker](https://github.com/EpicGamesExt/raddebugger?tab=readme-ov-file#the-rad-linker https://github.com/EpicGamesExt/raddebugger?tab=readme-ov-fi...) though quite early days.
- wolfd 2y agoI’m not sure if you’re intending to leave a negative or positive remark, or just a brief history, but the fact that people are still managing to squeeze better performance into linkers is very encouraging to me.
- ajb 2y agoCertainly no intention to be negative. Not having run the numbers, I don't know if the older ones got slower over time due to more features, or the new ones are squeezing out new performance gains. I guess it's also partly that the bigger codebases scaled up so much over this period, so that there are gains to be had that weren't interesting before.
- wolfd 2y agoGood question, I always wonder the same thing. https://www.phoronix.com/news/Mold-Linker-2024-Performance https://www.phoronix.com/news/Mold-Linker-2024-Performance seems to show that that the newer linkers still outperform their predecessors, even after maturing. But of course this doesn’t show the full picture.
- cbmuser 2y agoGold is slated for removal from binutils for version 2.44.0, so it's officially dead.
- saagarjha 2y agoWhere is the effort going now? lld?
- o11c 2y agoRarely mentioned: all of these occur at the cost of not implementing a very large number of useful features used by real-world programs.
- einpoklum 2y agoCan you name a few of these features, for those of us who don't know much about linking beyond the fact that it takes compiled object files and makes an executable (and maybe does LTO)?
- kibwen 2y agoPresumably they're talking about linker scripts, and IMO if you're one of the vanishingly rare people who absolutely needs a linker script for some reason, then, firstly, my condolences, and secondly, given that 99.999% percent of users never need linker scripts, and given how much complexity and fragility their support adds to linker codebases, I'm perfectly happy to say that the rest of us can happily use fast and simple linkers that don't support linker scripts, and the other poor souls can keep using ld.
- ajb 2y agoAnyone wondering why you'd need a linker script: They are essential on bare metal, as you have to tell the linker where the hardware requires you to put stuff. There are lots in the linux kernel repo, u-boot, probably Arduino, etc.
- account42 2y agoThey are also very useful if you care a lot about the size of the resulting binary.
- mshockwave 2y agoIt’s pretty common to roll your own linker script in embedded software development
- 2y ago