NameDateSize

..05-Sep-201755

aarch64-reloc-property.ccH A D05-Sep-20175.1 KiB

aarch64-reloc-property.hH A D05-Sep-20177 KiB

aarch64-reloc.defH A D05-Sep-201712.5 KiB

aarch64.ccH A D05-Sep-2017262.8 KiB

aclocal.m4H A D05-Sep-201736 KiB

archive.ccH A D05-Sep-201737.9 KiB

archive.hH A D05-Sep-201715.1 KiB

arm-reloc-property.ccH A D05-Sep-20179.3 KiB

arm-reloc-property.hH A D05-Sep-201711.2 KiB

arm-reloc.defH A D05-Sep-201713.2 KiB

arm.ccH A D05-Sep-2017421.9 KiB

attributes.ccH A D05-Sep-201713.4 KiB

attributes.hH A D05-Sep-201710.9 KiB

binary.ccH A D05-Sep-201710.6 KiB

binary.hH A D05-Sep-20173.2 KiB

ChangeLogH A D05-Sep-20178.1 KiB

ChangeLog-0815H A D05-Sep-2017737.1 KiB

ChangeLog-2016H A D05-Sep-201764.5 KiB

common.ccH A D05-Sep-20179.6 KiB

common.hH A D05-Sep-20171.6 KiB

compressed_output.ccH A D05-Sep-201710.3 KiB

compressed_output.hH A D05-Sep-20172.6 KiB

config.inH A D05-Sep-20177.4 KiB

configureH A D05-Sep-2017265 KiB

configure.acH A D05-Sep-201720.5 KiB

configure.tgtH A D05-Sep-20174.3 KiB

copy-relocs.ccH A D05-Sep-20178.7 KiB

copy-relocs.hH A D05-Sep-20175.9 KiB

cref.ccH A D05-Sep-201710.2 KiB

cref.hH A D05-Sep-20172 KiB

debug.hH A D05-Sep-20172.4 KiB

defstd.ccH A D05-Sep-20177.6 KiB

defstd.hH A D05-Sep-20171.1 KiB

descriptors.ccH A D05-Sep-20177.9 KiB

descriptors.hH A D05-Sep-20173.6 KiB

dirsearch.ccH A D05-Sep-20177 KiB

dirsearch.hH A D05-Sep-20172.8 KiB

dwarf_reader.ccH A D05-Sep-201770.9 KiB

dwarf_reader.hH A D05-Sep-201733.2 KiB

dwp.ccH A D05-Sep-201772 KiB

dwp.hH A D05-Sep-20173.2 KiB

dynobj.ccH A D05-Sep-201755 KiB

dynobj.hH A D05-Sep-201718.8 KiB

ehframe.ccH A D05-Sep-201739 KiB

ehframe.hH A D05-Sep-201715.9 KiB

errors.ccH A D05-Sep-20179.9 KiB

errors.hH A D05-Sep-20174 KiB

expression.ccH A D05-Sep-201734.8 KiB

ffsll.cH A D05-Sep-20171.4 KiB

fileread.ccH A D05-Sep-201728.9 KiB

fileread.hH A D05-Sep-201717 KiB

freebsd.hH A D05-Sep-20173 KiB

ftruncate.cH A D05-Sep-20172.4 KiB

gc.ccH A D05-Sep-20172.2 KiB

gc.hH A D05-Sep-201712.3 KiB

gdb-index.ccH A D05-Sep-201740 KiB

gdb-index.hH A D05-Sep-20177.3 KiB

gold-threads.ccH A D05-Sep-20179 KiB

gold-threads.hH A D05-Sep-20175.6 KiB

gold.ccH A D05-Sep-201729.5 KiB

gold.hH A D05-Sep-20179 KiB

i386.ccH A D05-Sep-2017139.7 KiB

icf.ccH A D05-Sep-201734.4 KiB

icf.hH A D05-Sep-20175.6 KiB

incremental-dump.ccH A D05-Sep-201716.9 KiB

incremental.ccH A D05-Sep-201796.1 KiB

incremental.hH A D05-Sep-201764 KiB

int_encoding.ccH A D05-Sep-20173.5 KiB

int_encoding.hH A D05-Sep-20174.9 KiB

layout.ccH A D05-Sep-2017186.4 KiB

layout.hH A D05-Sep-201749.8 KiB

main.ccH A D05-Sep-201710.3 KiB

Makefile.amH A D05-Sep-201710.1 KiB

Makefile.inH A D05-Sep-201753.2 KiB

mapfile.ccH A D05-Sep-201710.2 KiB

mapfile.hH A D05-Sep-20172.9 KiB

merge.ccH A D05-Sep-201719.2 KiB

merge.hH A D05-Sep-201715.4 KiB

mips.ccH A D05-Sep-2017431.6 KiB

mremap.cH A D05-Sep-20172.4 KiB

nacl.ccH A D05-Sep-20171.3 KiB

nacl.hH A D05-Sep-20176.9 KiB

NEWSH A D05-Sep-20171.3 KiB

object.ccH A D05-Sep-2017104.8 KiB

object.hH A D05-Sep-201792.9 KiB

options.ccH A D05-Sep-201743.1 KiB

options.hH A D05-Sep-201782.9 KiB

output.ccH A D05-Sep-2017157.7 KiB

output.hH A D05-Sep-2017146.1 KiB

parameters.ccH A D05-Sep-20179.6 KiB

parameters.hH A D05-Sep-20176.3 KiB

plugin.ccH A D05-Sep-201752.7 KiB

plugin.hH A D05-Sep-201715.8 KiB

po/H05-Sep-201719

powerpc.ccH A D05-Sep-2017283.3 KiB

pread.cH A D05-Sep-20171.4 KiB

READMEH A D05-Sep-20172.8 KiB

readsyms.ccH A D05-Sep-201725.5 KiB

readsyms.hH A D05-Sep-201712.6 KiB

reduced_debug_output.ccH A D05-Sep-201714 KiB

reduced_debug_output.hH A D05-Sep-20174.2 KiB

reloc-types.hH A D05-Sep-20172.7 KiB

reloc.ccH A D05-Sep-201753.8 KiB

reloc.hH A D05-Sep-201738.3 KiB

resolve.ccH A D05-Sep-201736.4 KiB

s390.ccH A D05-Sep-2017146.4 KiB

script-c.hH A D05-Sep-201715.8 KiB

script-sections.ccH A D05-Sep-2017128 KiB

script-sections.hH A D05-Sep-201710.7 KiB

script.ccH A D05-Sep-201795.7 KiB

script.hH A D05-Sep-201718.4 KiB

sparc.ccH A D05-Sep-2017133.6 KiB

stringpool.ccH A D05-Sep-201715.4 KiB

stringpool.hH A D05-Sep-201712.6 KiB

symtab.ccH A D05-Sep-2017116.4 KiB

symtab.hH A D05-Sep-201762.7 KiB

system.hH A D05-Sep-20174.6 KiB

target-reloc.hH A D05-Sep-201730.8 KiB

target-select.ccH A D05-Sep-20175.6 KiB

target-select.hH A D05-Sep-20178.4 KiB

target.ccH A D05-Sep-20177.3 KiB

target.hH A D05-Sep-201739.8 KiB

testsuite/H05-Sep-2017485

tilegx.ccH A D05-Sep-2017188.8 KiB

timer.ccH A D05-Sep-20173.1 KiB

timer.hH A D05-Sep-20171.8 KiB

tls.hH A D05-Sep-20172.5 KiB

TODOH A D22-Nov-2012969

token.hH A D05-Sep-20177.9 KiB

version.ccH A D05-Sep-20172.3 KiB

workqueue-internal.hH A D05-Sep-20172.8 KiB

workqueue-threads.ccH A D05-Sep-20174.7 KiB

workqueue.ccH A D05-Sep-201711.6 KiB

workqueue.hH A D05-Sep-20177.4 KiB

x86_64.ccH A D05-Sep-2017181.2 KiB

yyscript.yH A D05-Sep-201730.4 KiB

README

1gold is an ELF linker.  It is intended to have complete support for
2ELF and to run as fast as possible on modern systems.  For normal use
3it is a drop-in replacement for the older GNU linker.
4
5gold is part of the GNU binutils.  See ../binutils/README for more
6general notes, including where to send bug reports.
7
8gold was originally developed at Google, and was contributed to the
9Free Software Foundation in March 2008.  At Google it was designed by
10Ian Lance Taylor, with major contributions by Cary Coutant, Craig
11Silverstein, and Andrew Chatham.
12
13The existing GNU linker manual is intended to be accurate
14documentation for features which gold supports.  gold supports most of
15the features of the GNU linker for ELF targets.  Notable
16omissions--features of the GNU linker not currently supported in
17gold--are:
18  * MRI compatible linker scripts
19  * cross-reference reports (--cref)
20  * various other minor options
21
22
23Notes on the code
24=================
25
26These are some notes which may be helpful to people working on the
27source code of gold itself.
28
29gold is written in C++.  It is a GNU program, and therefore follows
30the GNU formatting standards as modified for C++.  Source documents in
31order of decreasing precedence:
32    http://www.gnu.org/prep/standards/
33    http://gcc.gnu.org/onlinedocs/libstdc++/manual/source_code_style.html
34    http://www.zembu.com/eng/procs/c++style.html
35
36The linker is intended to have complete support for cross-compilation,
37while still supporting the normal case of native linking as fast as
38possible.  In order to do this, many classes are actually templates
39whose parameter is the ELF file class (e.g., 32 bits or 64 bits).  The
40C++ code is the same, but we don't pay the execution time cost of
41always using 64-bit integers if the target is 32 bits.  Many of these
42class templates also have an endianness parameter: true for
43big-endian, false for little-endian.
44
45The linker is multi-threaded.  The Task class represents a single unit
46of work.  Task objects are stored on a single Workqueue object.  Tasks
47communicate via Task_token objects.  Task_token objects are only
48manipulated while holding the master Workqueue lock.  Relatively few
49mutexes are used.
50
51
52Build requirements
53==================
54
55The gold source code uses templates heavily.  Building it requires a
56recent version of g++.  g++ 4.0.3 and 4.1.3 are known to work.  g++
573.2, 3.4.3, and 4.1.2 are known to fail.
58
59The linker script parser uses features which are only in newer
60versions of bison.  bison 2.3 is known to work.  bison 1.26 is known
61to fail.  If you are building gold from an official binutils release,
62the bison output should already be included.
63
64
65Copyright (C) 2012-2017 Free Software Foundation, Inc.
66
67Copying and distribution of this file, with or without modification,
68are permitted in any medium without royalty provided the copyright
69notice and this notice are preserved.
70