linker for ELF files
In software engineering, gold is a linker for ELF files. It became an official GNU package and was added to binutils in March 2008 and first released in binutils version 2.19. gold … Wikipedia
Factsheet
gold
Developer Ian Lance Taylor
Written in C++
Factsheet
gold
Developer Ian Lance Taylor
Written in C++
🌐
Wikipedia
en.wikipedia.org › wiki › Gold_(linker)
gold (linker) - Wikipedia
March 12, 2025 - In software engineering, gold is a linker for ELF files. It became an official GNU package and was added to binutils in March 2008 and first released in binutils version 2.19. gold was developed by Ian Lance Taylor and a small team at Google.
🌐
Baeldung
baeldung.com › home › building › exploring gnu gold linker
Exploring GNU Gold Linker | Baeldung on Linux
June 13, 2025 - GNU gold is a complete re-implementation of ld. However, unlike ld, it only supports the ELF format.
🌐
Gentoo Wiki
wiki.gentoo.org › wiki › Gold
Gold - Gentoo wiki
April 14, 2025 - Warning gold is less active than it once was, e.g. gold's commit history vs bfd's commit history. Users seeking an alternative linker may be interested in LLVM's lld. ... GNU gold is a linker intended as a replacement for the ld.bfd linker.
🌐
Medium
medium.com › @boutnaru › the-linux-process-journey-gold-the-gnu-elf-linker-01106aec2b6a
The Linux Process Journey — gold (The GNU ELF Linker) | by Shlomi Boutnaru, Ph.D. | Medium
February 9, 2024 - “gold” is a symbolic link to an ELF file which is the GNU ELF linker. As an example under Ubuntu it points to x86_x64-linux-gnu-gold which…
🌐
Fedora Project
fedoraproject.org › wiki › GoldLinking
GoldLinking - Fedora Project Wiki
Gold is a linker for ELF files. It was added to binutils March, 2008 and first released in binutils version 2.19. Gold is developed by Ian Lance Taylor and a small team at Google with participation of general GNU community.
🌐
Phoronix
phoronix.com › news › GNU-Gold-Linker-Deprecated
GNU Gold Linker Is Deprecated & Will Be Gone For Good Without New Developers - Phoronix
February 6, 2025 - The GNU Binutils 2.44 release announcement explained the current situation: "In a change to our previous practice, in this release the binutils-2.44.tar tarball does not contain the sources for the gold linker. This is because the gold linker is now deprecated and will eventually be removed unless volunteers step forward and offer to continue development and maintenance.
Top answer
1 of 4
35

The gold linker was designed as an ELF-specific linker, with the intention of producing a more maintainable and faster linker than BFD ld (the “traditional” GNU binutils linker). As a side-effect, it is indeed able to link very large programs using less memory than BFD ld, presumably because there are fewer layers of abstraction to deal with, and because the linker’s data structures map more directly to the ELF format.

I’m not sure there’s much documentation which specifically addresses the design differences between the two linkers, and their effect on memory use. There is a very interesting series of articles on linkers by Ian Lance Taylor, the author of the various GNU linkers, which explains many of the design decisions leading up to gold. He writes that

The linker I am now working, called gold, on will be my third. It is exclusively an ELF linker. 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.

(The second linker is BFD ld.)

The gold linker is deprecated in binutils 2.44 and will be dropped entirely at some point in the future.

2 of 4
18

The gold linker was written to make the link process considerably faster. According to the gold auther Ian Lance Taylor

At the moment gold has only one significant advantage over the existing linker: it is faster. On large C++ programs, I have measured it as running five times faster.

He is comparing gold linker performance with the traditional GNU linker. gold (unlike the GNU linker) does not use the BFD library to process object files.

The limitation of gold is that (unlike GNU linker which can process many object file types) it can only link ELF format object files.

Regarding the issues you faced with when using GNU linker, here is an interesting answer to a similar question on SO from Michael Adam:

The gold linker even found some dependency problems in our code, since it seems to be more correct than the classical one with respect to some details. See, e.g. this Samba commit.

🌐
Ubuntu
manpages.ubuntu.com › manpages › trusty › man1 › x86_64-linux-gnu-ld.gold.1.html
Ubuntu Manpage: gold - The GNU ELF linker
--fix-v4bx (ARM only) Rewrite BX rn as MOV pc, rn for ARMv4 --fix-v4bx-interworking (ARM only) Rewrite BX rn branch to ARMv4 interworking veneer -g Ignored --gdb-index Generate .gdb_index section --no-gdb-index Do not generate .gdb_index section --gnu-unique Enable STB_GNU_UNIQUE symbol binding (default) --no-gnu-unique Disable STB_GNU_UNIQUE symbol binding -h FILENAME, -soname FILENAME Set shared library name --hash-bucket-empty-fraction FRACTION Min fraction of empty buckets in dynamic hash --hash-style [sysv,gnu,both] Dynamic hash style -I PROGRAM, --dynamic-linker PROGRAM Set dynamic linke
🌐
LLVM
llvm.org › docs › GoldPlugin.html
The LLVM gold plugin — LLVM 23.0.0git documentation
You need to have gold with plugin support and build the LLVMgold plugin. The gold linker is installed as ld.gold. To see whether gold is the default on your system, run /usr/bin/ld -v. It will report “GNU gold” or else “GNU ld” if not.
Find elsewhere
🌐
GNU
gnu.org › software › binutils
Binutils - GNU Project - Free Software Foundation
as - the GNU assembler. gold - a new, faster, ELF only linker. But they also include: addr2line - Converts addresses into filenames and line numbers. ar - A utility for creating, modifying and extracting from archives. c++filt - Filter to demangle encoded C++ symbols.
🌐
GitHub
github.com › swiftlang › swift › issues › 79163
Drop support for deprecated GNU Gold linker on non-Darwin Unix · Issue #79163 · swiftlang/swift
February 5, 2025 - Motivation As of binutils release 2.44 (Feb 2025), the gold linker is officially deprecated, and its sources are no longer included in the default release tarball. https://lists.gnu.org/archive/html/info-gnu/2025-02/msg00001.html In a ch...
Author   swiftlang
🌐
HandWiki
handwiki.org › wiki › Software:Gold_(linker)
Software:gold (linker) - HandWiki
February 9, 2024 - In software engineering, gold is a linker for ELF files. It became an official GNU package and was added to binutils in March 2008[1][2] and first released in binutils version 2.19.
🌐
Wikidata
wikidata.org › wiki › Q4200784
GNU gold linker - Wikidata
binutils-gold · GNU gold · GNU ELF linker · ld.gold edit · instance of · linker · 0 references · free software · 0 references · part of · GNU Binutils · 0 references · operating system · GNU/Linux · 0 references · writable file format · Executable and Linkable Format ·
🌐
Debian Manpages
manpages.debian.org › buster › binutils-x86-64-linux-gnu › x86_64-linux-gnu-gold.1.en.html
x86_64-linux-gnu-gold(1) — binutils-x86-64-linux-gnu — Debian buster — Debian Manpages
March 21, 2019 - gold - The GNU ELF linker · ld.gold [options] file... --help · Report usage information · -v, --version · Report version information · -V · Report version and target information · --add-needed · Not supported · --no-add-needed · Do not copy DT_NEEDED tags from shared libraries (default) --allow-multiple-definition Allow multiple definitions of symbols ·
🌐
Jbohren
jbohren.com › articles › gold
GNU Gold & ROS
Some guys at Google thought that GNU ld was a bit slow on C++ programs. Guess what, they were right and wrote a new C++ linker from scratch. Enter GNU gold.
🌐
Wikiwand
wikiwand.com › en › Gold_(linker)
Gold (linker) - Wikiwand
In software engineering, gold is a linker for ELF files. It became an official GNU package and was added to binutils in March 2008 and first released in binutils version 2.19. gold was developed by Ian Lance Taylor and a small team at Google.