This is the mail archive of the
mailing list for the binutils project.
New ELF linker code added to GNU binutils
- From: Ian Lance Taylor <iant at google dot com>
- To: binutils at sourceware dot org
- Date: Fri, 21 Mar 2008 17:02:13 -0700
- Subject: New ELF linker code added to GNU binutils
I have been working on a new ELF linker for some time. With the
agreement of the main GNU binutils maintainers, I have just added it
to the GNU binutils.
The new of the new linker is gold. There are two new directories:
src/gold and src/elfcpp. Checking out binutils as usual will pick up
the new directories.
To build it, configure with --enable-gold. You will then get gold
instead of the usual GNU ld.
gold is written in C++. It is likely that it only works with gcc
version 4.0 or later. I would be happy to apply simple compatibility
patches for earlier versions.
gold only supports ELF targets such as GNU/Linux and other free
operating systems. gold does not support Windows. There is no
expectation that gold will ever support anything other than ELF
At the moment gold only supports x86 and x86_64 targets. It is
designed for portability, and we expect to add support for more
targets in the future.
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.
At this time gold should be considered as beta quality software. It
has had quite a bit of testing inside Google. However, it has not
been widely tested in other environments. For most normal use cases I
expect it to work correctly. However, I have been told that it has
problems building the Linux kernel, in that a kernel linked with gold
does not boot. I hope that people will be able to help identify and
resolve this problem.
gold does not yet have any internal documentation. I plan to work on
gold does not yet have a manual. For now the GNU linker manual should
be accurate for those features which gold supports--which is to say,
many of them but not all of them.
I have added gold to the binutils with development history. This will
have the odd effect that if you check out the binutils as of a given
date you will see gold sources from that date, even for times when
gold was not part of the binutils. However, check outs of old release
tags will still pick up only the correct sources.
I would be happy to receive any feedback.