• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

po/22-Nov-2023-14,76711,617

testsuite/22-Nov-2023-35,94824,730

ChangeLogD22-Nov-2023682.9 KiB16,72314,298

Makefile.amD22-Nov-20239.8 KiB369275

Makefile.inD22-Nov-202352 KiB1,4011,233

NEWSD22-Nov-2023301 128

READMED22-Nov-20232.8 KiB7053

TODOD22-Nov-2023969 2719

aarch64-reloc-property.ccD22-Nov-20234.7 KiB164114

aarch64-reloc-property.hD22-Nov-20237 KiB246148

aarch64-reloc.defD22-Nov-202310.4 KiB10590

aarch64.ccD22-Nov-2023256.2 KiB8,2796,089

aclocal.m4D22-Nov-202335.7 KiB993893

archive.ccD22-Nov-202337.2 KiB1,343974

archive.hD22-Nov-202315 KiB572331

arm-reloc-property.ccD22-Nov-20239.3 KiB334239

arm-reloc-property.hD22-Nov-202311.2 KiB387227

arm-reloc.defD22-Nov-202313.2 KiB195188

arm.ccD22-Nov-2023414.7 KiB12,9839,226

attributes.ccD22-Nov-202313.4 KiB459316

attributes.hD22-Nov-202310.9 KiB412249

binary.ccD22-Nov-202310.3 KiB365261

binary.hD22-Nov-20233.2 KiB11859

common.ccD22-Nov-20239.6 KiB365260

common.hD22-Nov-20231.6 KiB6830

compressed_output.ccD22-Nov-20237.7 KiB248158

compressed_output.hD22-Nov-20232.5 KiB8733

config.inD22-Nov-20237.4 KiB284202

configureD22-Nov-2023263.6 KiB9,3767,722

configure.acD22-Nov-202320.1 KiB665590

configure.tgtD22-Nov-20234.1 KiB174163

copy-relocs.ccD22-Nov-20237.6 KiB251154

copy-relocs.hD22-Nov-20235.3 KiB15171

cref.ccD22-Nov-202310.2 KiB408262

cref.hD22-Nov-20232 KiB8031

debug.hD22-Nov-20232.4 KiB8445

defstd.ccD22-Nov-20237.6 KiB289252

defstd.hD22-Nov-20231.1 KiB379

descriptors.ccD22-Nov-20237.9 KiB298199

descriptors.hD22-Nov-20233.6 KiB11846

dirsearch.ccD22-Nov-20237 KiB306202

dirsearch.hD22-Nov-20232.8 KiB9136

dwarf_reader.ccD22-Nov-202381.3 KiB2,7822,147

dwarf_reader.hD22-Nov-202334.5 KiB1,152678

dwp.ccD22-Nov-202372 KiB2,4521,759

dwp.hD22-Nov-20233.2 KiB12567

dynobj.ccD22-Nov-202354.1 KiB1,9931,509

dynobj.hD22-Nov-202318.6 KiB679387

ehframe.ccD22-Nov-202336.8 KiB1,273885

ehframe.hD22-Nov-202316 KiB527313

errors.ccD22-Nov-20239.8 KiB427308

errors.hD22-Nov-20234 KiB13960

expression.ccD22-Nov-202334 KiB1,3131,030

ffsll.cD22-Nov-20231.4 KiB4918

fileread.ccD22-Nov-202328.9 KiB1,142850

fileread.hD22-Nov-202317 KiB612310

freebsd.hD22-Nov-20233 KiB10460

ftruncate.cD22-Nov-20232.4 KiB11258

gc.ccD22-Nov-20232.3 KiB7541

gc.hD22-Nov-202312.7 KiB381278

gdb-index.ccD22-Nov-202340 KiB1,360953

gdb-index.hD22-Nov-20237.3 KiB265156

gold-threads.ccD22-Nov-20239.3 KiB460305

gold-threads.hD22-Nov-20235.6 KiB268144

gold.ccD22-Nov-202331 KiB940662

gold.hD22-Nov-20239 KiB314175

i386.ccD22-Nov-2023133.6 KiB4,2673,214

icf.ccD22-Nov-202332.8 KiB850527

icf.hD22-Nov-20235.6 KiB18097

incremental-dump.ccD22-Nov-202316.9 KiB519426

incremental.ccD22-Nov-202396 KiB3,1232,344

incremental.hD22-Nov-202364 KiB2,2561,412

int_encoding.ccD22-Nov-20233.5 KiB13587

int_encoding.hD22-Nov-20234.9 KiB15986

layout.ccD22-Nov-2023186 KiB6,0284,314

layout.hD22-Nov-202349 KiB1,638903

main.ccD22-Nov-202310.3 KiB333217

mapfile.ccD22-Nov-202310.2 KiB413302

mapfile.hD22-Nov-20232.9 KiB11955

merge.ccD22-Nov-202320.8 KiB749518

merge.hD22-Nov-202317.8 KiB575296

mips.ccD22-Nov-2023367.6 KiB10,5767,611

mremap.cD22-Nov-20232.4 KiB8844

nacl.ccD22-Nov-20231.3 KiB4820

nacl.hD22-Nov-20236.9 KiB244190

object.ccD22-Nov-2023100.4 KiB3,3562,480

object.hD22-Nov-202388.6 KiB2,9001,723

options.ccD22-Nov-202342.1 KiB1,5361,151

options.hD22-Nov-202378.6 KiB2,1781,450

output.ccD22-Nov-2023155.5 KiB5,5284,147

output.hD22-Nov-2023145 KiB4,8893,000

parameters.ccD22-Nov-20239.6 KiB389271

parameters.hD22-Nov-20236.3 KiB247127

plugin.ccD22-Nov-202349.8 KiB1,8731,367

plugin.hD22-Nov-202315.6 KiB603350

powerpc.ccD22-Nov-2023247.7 KiB8,4027,017

pread.cD22-Nov-20231.4 KiB4312

readsyms.ccD22-Nov-202325.5 KiB947656

readsyms.hD22-Nov-202312.6 KiB492312

reduced_debug_output.ccD22-Nov-202314 KiB377305

reduced_debug_output.hD22-Nov-20234.2 KiB14169

reloc-types.hD22-Nov-20232.9 KiB9349

reloc.ccD22-Nov-202352.3 KiB1,8501,370

reloc.hD22-Nov-202328.9 KiB899598

resolve.ccD22-Nov-202335.6 KiB1,101756

script-c.hD22-Nov-202315.7 KiB567312

script-sections.ccD22-Nov-2023121 KiB4,3733,060

script-sections.hD22-Nov-202310.4 KiB338161

script.ccD22-Nov-202395.5 KiB3,4182,402

script.hD22-Nov-202318.3 KiB597298

sparc.ccD22-Nov-2023129.7 KiB4,3983,420

stringpool.ccD22-Nov-202315.3 KiB535371

stringpool.hD22-Nov-202312.6 KiB422202

symtab.ccD22-Nov-2023109.4 KiB3,7552,832

symtab.hD22-Nov-202361.5 KiB1,9731,084

system.hD22-Nov-20234.6 KiB172100

target-reloc.hD22-Nov-202327.1 KiB833588

target-select.ccD22-Nov-20235.6 KiB220140

target-select.hD22-Nov-20238.4 KiB279125

target.ccD22-Nov-20237.2 KiB261174

target.hD22-Nov-202337.9 KiB1,103621

tilegx.ccD22-Nov-2023187.5 KiB4,9273,931

timer.ccD22-Nov-20233.1 KiB13487

timer.hD22-Nov-20231.8 KiB8132

tls.hD22-Nov-20232.5 KiB8241

token.hD22-Nov-20237.9 KiB336182

version.ccD22-Nov-20232.3 KiB8234

workqueue-internal.hD22-Nov-20232.8 KiB11048

workqueue-threads.ccD22-Nov-20234.7 KiB200111

workqueue.ccD22-Nov-202311.6 KiB522333

workqueue.hD22-Nov-20237.4 KiB296144

x86_64.ccD22-Nov-2023156.7 KiB4,9623,784

yyscript.yD22-Nov-202330.2 KiB1,143906

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-2014 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