Jump to content

gold (linker)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 80.5.128.70 (talk) at 19:23, 11 August 2017. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


gold
Developer(s)Ian Lance Taylor
Written inC++
Operating systemGNU
Platformx86, x86-64, ARM, PowerPC, TileGX
TypeLinker
LicenseGNU General Public License version 3

In software engineering, gold is a linker for ELF files. It became an official GNU package[1] and was added to binutils in March, 2008[2][3] and first released in binutils version 2.19. Gold was developed by Ian Lance Taylor and a small team at Google.[4] The motivation for writing gold was to make a linker that is faster than the GNU linker,[4] especially for large applications coded in C++.

Unlike the GNU linker, gold doesn't use the BFD library to process object files. While this limits the object file formats it can process to ELF only, it is also claimed to result in a cleaner and faster implementation without an additional abstraction layer. The author cited complete removal of BFD as a reason to create a new linker from scratch rather than incrementally improve the GNU linker.[5]

To specify gold in a makefile, one sets the LD or LD environmental variable to ld.gold. To specify gold through a compiler option, one can use the option gcc's -fuse-ld=gold.

See also

References

  1. ^ "gold README". 2013-02-06. Retrieved 2017-01-22. It is a GNU program, and therefore follows the GNU formatting standards[...]
  2. ^ "gold/README: Initial CVS checkin of gold". Retrieved 2017-01-22.
  3. ^ Ian Lance Taylor (2008-03-21). "New ELF linker code added to GNU binutils". binutils mailing list. Retrieved 2017-01-22.
  4. ^ a b Ian Lance Taylor (2008-04-04). "gold: Google Releases New and Improved GCC Linker". Google Open Source Blog. Retrieved 2017-01-22.
  5. ^ Ian Lance Taylor (2008). A New ELF Linker. GCC Developers' Summit. pp. 129–136. Retrieved 2017-01-22.