Ian Taylor checked in the long-awaited “gold“. Gold is a new ELF-only linker written in C++. It is designed for performance and is much faster than the current binutils ld.
I’m very happy about this for a few reasons. First, we’ve needed a new linker for a long, long time. Second, this will help the incremental compiler.
I looked through the gold sources a bit. I wish everything in the GNU toolchain were written this way. It is very clean code, nicely commented, and easy to follow. It shows pretty clearly, I think, the ways in which C++ can be better than C when it is used well.
Congratulations, Ian!
3 Comments
I’ve tried it out. It’s fast, damned fast. It does appear to make it much more important to have your object files on a fast local disk than a slow NFS-mounted volume, because there’s so little CPU time left that it’s pretty much all I/O.
Looks like I’ll be banging on it more heavily.
I have tried it too. On our medium complexity C++ project, the link time drops from 8-10s to 3-4s, so there is a 2x, 3x difference, not just some percent improvement!
I just moved a symlink, not even needed to adjust our qmake based buildsystem!
If you do the math, ‘gold’ will save days on an average programmaer’s year. On a global scale ‘gold’ will save hundreds of person-YEARS per year 🙂
Well done!
The gold sources are not especially good, the GNU binutils are especially bad 😉