Name Date Size #Lines LOC

..--

po/H09-Jul-2024-44,70834,985

ChangeLogH A D09-Jul-20249.7 KiB316220

ChangeLog-0815H A D09-Jul-2024737.1 KiB18,14015,473

ChangeLog-2016H A D09-Jul-202464.3 KiB1,6691,396

ChangeLog-2017H A D09-Jul-202430.7 KiB849661

ChangeLog-2018H A D09-Jul-202429.7 KiB786629

ChangeLog-2019H A D09-Jul-202410.4 KiB289223

ChangeLog-2020H A D09-Jul-202419.5 KiB581447

Makefile.amH A D09-Jul-202411.6 KiB400301

Makefile.inH A D09-Jul-202462.3 KiB1,7071,500

NEWSH A D09-Jul-20242.4 KiB11361

READMEH A D09-Jul-20242.8 KiB7053

TODOH A D09-Jul-2024969 2719

aarch64-reloc-property.ccH A D09-Jul-20245.1 KiB198143

aarch64-reloc-property.hH A D09-Jul-20247 KiB246148

aarch64-reloc.defH A D09-Jul-202413.8 KiB131113

aarch64.ccH A D09-Jul-2024270.1 KiB8,6296,360

aclocal.m4H A D09-Jul-202443.9 KiB1,2201,109

archive.ccH A D09-Jul-202438 KiB1,367996

archive.hH A D09-Jul-202415.1 KiB576333

arm-reloc-property.ccH A D09-Jul-20249.3 KiB334239

arm-reloc-property.hH A D09-Jul-202411.2 KiB387227

arm-reloc.defH A D09-Jul-202413.2 KiB195188

arm.ccH A D09-Jul-2024422.5 KiB13,2319,451

attributes.ccH A D09-Jul-202413.4 KiB459316

attributes.hH A D09-Jul-202410.9 KiB412249

binary.ccH A D09-Jul-202410.6 KiB371261

binary.hH A D09-Jul-20243.2 KiB11859

common.ccH A D09-Jul-20249.6 KiB365260

common.hH A D09-Jul-20241.6 KiB6830

compressed_output.ccH A D09-Jul-202411.4 KiB370280

compressed_output.hH A D09-Jul-20242.6 KiB8733

config.inH A D09-Jul-20249 KiB342243

configureH A D09-Jul-2024448 KiB15,59212,743

configure.acH A D09-Jul-202423.3 KiB744660

configure.tgtH A D09-Jul-20244.4 KiB190179

copy-relocs.ccH A D09-Jul-20248.7 KiB293192

copy-relocs.hH A D09-Jul-20245.9 KiB16784

cref.ccH A D09-Jul-202410.4 KiB412266

cref.hH A D09-Jul-20242 KiB8031

debug.hH A D09-Jul-20242.5 KiB8849

defstd.ccH A D09-Jul-20247.6 KiB289252

defstd.hH A D09-Jul-20241.1 KiB379

descriptors.ccH A D09-Jul-20247.9 KiB299200

descriptors.hH A D09-Jul-20243.6 KiB11846

dirsearch.ccH A D09-Jul-20247 KiB306202

dirsearch.hH A D09-Jul-20242.8 KiB9136

dwarf_reader.ccH A D09-Jul-202484.2 KiB2,8822,238

dwarf_reader.hH A D09-Jul-202435.4 KiB1,184702

dwp.ccH A D09-Jul-202471.9 KiB2,4521,759

dwp.hH A D09-Jul-20243.2 KiB12567

dynobj.ccH A D09-Jul-202454.8 KiB2,0221,537

dynobj.hH A D09-Jul-202418.8 KiB689393

ehframe.ccH A D09-Jul-202439.7 KiB1,370959

ehframe.hH A D09-Jul-202416.5 KiB547326

errors.ccH A D09-Jul-202410.2 KiB449324

errors.hH A D09-Jul-20244.1 KiB14463

expression.ccH A D09-Jul-202435.5 KiB1,3641,070

ffsll.cH A D09-Jul-20241.4 KiB4918

fileread.ccH A D09-Jul-202430 KiB1,179880

fileread.hH A D09-Jul-202417.4 KiB624316

freebsd.hH A D09-Jul-20243 KiB10460

ftruncate.cH A D09-Jul-20242.4 KiB11258

gc.ccH A D09-Jul-20242.2 KiB6935

gc.hH A D09-Jul-202412.7 KiB381277

gdb-index.ccH A D09-Jul-202440 KiB1,360953

gdb-index.hH A D09-Jul-20247.3 KiB265156

gold-threads.ccH A D09-Jul-20249 KiB451298

gold-threads.hH A D09-Jul-20245.6 KiB268144

gold.ccH A D09-Jul-202429.7 KiB913645

gold.hH A D09-Jul-20249.1 KiB318177

i386.ccH A D09-Jul-2024139.8 KiB4,4633,372

icf.ccH A D09-Jul-202442.5 KiB1,140694

icf.hH A D09-Jul-20246.7 KiB210112

incremental-dump.ccH A D09-Jul-202416.9 KiB519426

incremental.ccH A D09-Jul-202496.6 KiB3,1352,349

incremental.hH A D09-Jul-202464.1 KiB2,2631,417

int_encoding.ccH A D09-Jul-20243.3 KiB13082

int_encoding.hH A D09-Jul-20244.9 KiB15986

layout.ccH A D09-Jul-2024199.7 KiB6,5384,738

layout.hH A D09-Jul-202452.1 KiB1,744968

main.ccH A D09-Jul-202410.6 KiB338221

mapfile.ccH A D09-Jul-202410.2 KiB413302

mapfile.hH A D09-Jul-20242.9 KiB11955

merge.ccH A D09-Jul-202419.2 KiB692482

merge.hH A D09-Jul-202415.4 KiB515274

mips.ccH A D09-Jul-2024441.3 KiB12,7499,230

mremap.cH A D09-Jul-20242.4 KiB8844

nacl.ccH A D09-Jul-20241.3 KiB4820

nacl.hH A D09-Jul-20246.9 KiB244190

object.ccH A D09-Jul-2024112.1 KiB3,7512,799

object.hH A D09-Jul-202494.2 KiB3,0911,868

options.ccH A D09-Jul-202445.8 KiB1,6751,277

options.hH A D09-Jul-202487.3 KiB2,4601,630

output.ccH A D09-Jul-2024156.9 KiB5,5764,176

output.hH A D09-Jul-2024145.6 KiB4,9293,028

parameters.ccH A D09-Jul-20249.6 KiB389271

parameters.hH A D09-Jul-20246.3 KiB247127

plugin.ccH A D09-Jul-202461.4 KiB2,3201,720

plugin.hH A D09-Jul-202417 KiB656385

powerpc.ccH A D09-Jul-2024386.2 KiB13,13411,102

pread.cH A D09-Jul-20241.4 KiB4312

readsyms.ccH A D09-Jul-202425.5 KiB947656

readsyms.hH A D09-Jul-202412.6 KiB492312

reduced_debug_output.ccH A D09-Jul-202414 KiB377305

reduced_debug_output.hH A D09-Jul-20244.2 KiB14169

reloc-types.hH A D09-Jul-20242.7 KiB8543

reloc.ccH A D09-Jul-202453.9 KiB1,9291,438

reloc.hH A D09-Jul-202438.3 KiB1,202851

resolve.ccH A D09-Jul-202439.4 KiB1,213839

s390.ccH A D09-Jul-2024146.7 KiB4,9753,939

script-c.hH A D09-Jul-202415.8 KiB568313

script-sections.ccH A D09-Jul-2024128 KiB4,5973,220

script-sections.hH A D09-Jul-202410.7 KiB343162

script.ccH A D09-Jul-202496.3 KiB3,4512,427

script.hH A D09-Jul-202418.9 KiB616310

sparc.ccH A D09-Jul-2024133.7 KiB4,5373,543

stringpool.ccH A D09-Jul-202415.4 KiB537373

stringpool.hH A D09-Jul-202412.6 KiB422202

symtab.ccH A D09-Jul-2024118.2 KiB4,0363,067

symtab.hH A D09-Jul-202464.2 KiB2,0581,121

system.hH A D09-Jul-20244.8 KiB178106

target-reloc.hH A D09-Jul-202432.3 KiB1,001699

target-select.ccH A D09-Jul-20245.6 KiB220140

target-select.hH A D09-Jul-20248.4 KiB279125

target.ccH A D09-Jul-20247.3 KiB263176

target.hH A D09-Jul-202441 KiB1,194680

tilegx.ccH A D09-Jul-2024189 KiB4,9753,979

timer.ccH A D09-Jul-20243.1 KiB13487

timer.hH A D09-Jul-20241.8 KiB8132

tls.hH A D09-Jul-20242.5 KiB8241

token.hH A D09-Jul-20247.9 KiB336182

version.ccH A D09-Jul-20242.3 KiB8234

workqueue-internal.hH A D09-Jul-20242.8 KiB11048

workqueue-threads.ccH A D09-Jul-20244.7 KiB200111

workqueue.ccH A D09-Jul-202411.6 KiB522333

workqueue.hH A D09-Jul-20247.4 KiB296144

x86_64.ccH A D09-Jul-2024194.7 KiB6,1544,687

yyscript.cH A D09-Jul-2024152.4 KiB3,9893,196

yyscript.hH A D09-Jul-202411 KiB323258

yyscript.yH A D09-Jul-202430.5 KiB1,155917

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