Linux Commands Examples

A great documentation place for Linux commands

ld.gold

The GNU ELF linker

Synopsis

ld.gold [options] file...


add an example, a script, a trick and tips

: email address (won't be displayed)
: name

Step 2

Thanks for this example ! - It will be moderated and published shortly.

Feel free to post other examples
Oops ! There is a tiny cockup. A damn 404 cockup. Please contact the loosy team who maintains and develops this wonderful site by clicking in the mighty feedback button on the side of the page. Say what happened. Thanks!

examples


no example yet ...

... Feel free to add your own example above to help other Linux-lovers !

options

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

--allow-multiple-definition Allow multiple definitions of symbols

--no-allow-multiple-definition

Do not allow multiple definitions

--allow-shlib-undefined

Allow unresolved references in shared libraries

--no-allow-shlib-undefined

Do not allow unresolved references in shared libraries

--as-needed

Only set DT_NEEDED for shared libraries if used

--no-as-needed

Always DT_NEEDED for shared libraries

-assert [ignored]

Ignored

-b [elf,binary], --format [elf,binary]

Set input format

-Bdynamic -l searches for shared libraries

-Bstatic -l does not search for shared libraries

-dy

alias for -Bdynamic

-dn

alias for -Bstatic

-Bgroup

Use group name lookup rules for shared library

-Bsymbolic

Bind defined symbols locally

-Bsymbolic-functions

Bind defined function symbols locally

--build-id [=STYLE]

Generate build ID note

--check-sections

Check segment addresses for overlaps (default)

--no-check-sections

Do not check segment addresses for overlaps

--compress-debug-sections [none,zlib]

Compress .debug_* sections in the output file

--copy-dt-needed-entries

Not supported

--no-copy-dt-needed-entries Do not copy DT_NEEDED tags from shared libraries

--cref

Output cross reference table

--no-cref

Do not output cross reference table

--ctors-in-init-array

Use DT_INIT_ARRAY for all constructors (default)

--no-ctors-in-init-array

Handle constructors as directed by compiler

-d, --define-common

Define common symbols

--no-define-common

Do not define common symbols

-dc

Alias for -d

-dp

Alias for -d

--debug [all,files,script,task][,...]

Turn on debugging

--defsym SYMBOL=EXPRESSION

Define a symbol

--demangle [=STYLE]

Demangle C++ symbols in log messages

--no-demangle

Do not demangle C++ symbols in log messages

--detect-odr-violations

Look for violations of the C++ One Definition Rule

--no-detect-odr-violations

Do not look for violations of the C++ One Definition Rule

-x, --discard-all

Delete all local symbols

-X, --discard-locals

Delete all temporary local symbols

--dynamic-list-data

Add data symbols to dynamic symbols

--dynamic-list-cpp-new

Add C++ operator new/delete to dynamic symbols

--dynamic-list-cpp-typeinfo Add C++ typeinfo to dynamic symbols

--dynamic-list FILE

Read a list of dynamic symbols

-e ADDRESS, --entry ADDRESS Set program start address

--exclude-libs lib,lib ...

Exclude libraries from automatic export

-E, --export-dynamic

Export all dynamic symbols

--no-export-dynamic

Do not export all dynamic symbols (default)

--export-dynamic-symbol SYMBOL

Export SYMBOL to dynamic symbol table

-EB

Link big-endian objects.

-EL

Link little-endian objects.

--eh-frame-hdr

Create exception frame header

--no-enum-size-warning

(ARM only) Do not warn about objects with incompatible enum sizes

-f SHLIB, --auxiliary SHLIB Auxiliary filter for shared object symbol table

-F SHLIB, --filter SHLIB

Filter for shared object symbol table

--fatal-warnings

Treat warnings as errors

--no-fatal-warnings

Do not treat warnings as errors

-fini SYMBOL

Call SYMBOL at unload-time

--fix-cortex-a8

(ARM only) Fix binaries for Cortex-A8 erratum.

--no-fix-cortex-a8

(ARM only) Do not fix binaries for Cortex-A8 erratum.

--fix-arm1176

(ARM only) Fix binaries for ARM1176 erratum.

--no-fix-arm1176

(ARM only) Do not fix binaries for ARM1176 erratum.

--merge-exidx-entries

(ARM only) Merge exidx entries in debuginfo.

--no-merge-exidx-entries

(ARM only) Do not merge exidx entries in debuginfo.

--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 linker path

--incremental

Do an incremental link if possible; otherwise, do a full link and prepare output for incremental linking

--no-incremental

Do a full link (default)

--incremental-full

Do a full link and prepare output for incremental linking

--incremental-update

Do an incremental link; exit if not possible

--incremental-base FILE

Set base file for incremental linking (default is output file)

--incremental-changed

Assume files changed

--incremental-unchanged

Assume files didn’t change

--incremental-unknown

Use timestamps to check files (default)

--incremental-startup-unchanged

Assume startup files unchanged (files preceding this option)

--incremental-patch PERCENT Amount of extra space to allocate for patches

-init SYMBOL

Call SYMBOL at load-time

--just-symbols FILE

Read only symbol values from FILE

--map-whole-files

Map whole files to memory (default on 64-bit hosts)

--no-map-whole-files

Map relevant file parts to memory (default on 32-bit hosts)

--keep-files-mapped

Keep files mapped across passes (default)

--no-keep-files-mapped

Release mapped files after each pass

--ld-generated-unwind-info

Generate unwind information for PLT (default)

--no-ld-generated-unwind-info

Do not generate unwind information for PLT

-l LIBNAME, --library LIBNAME

Search for library LIBNAME

-L DIR, --library-path DIR

Add directory to search path

-nostdlib

Only search directories specified on the command line.

--rosegment

Put read-only non-executable sections in their own segment

-m EMULATION

Set GNU linker emulation; obsolete

--mmap-output-file

Map the output file for writing (default).

--no-mmap-output-file

Do not map the output file for writing.

-M, --print-map

Write map file on standard output

-Map MAPFILENAME

Write map file

-n, --nmagic

Do not page align data

-N, --omagic

Do not page align data, do not make text readonly

--no-omagic

Page align data, make text readonly

--enable-new-dtags

Enable use of DT_RUNPATH and DT_FLAGS

--disable-new-dtags

Disable use of DT_RUNPATH and DT_FLAGS

--noinhibit-exec

Create an output file even if errors occur

--no-undefined

Report undefined symbols (even with --shared)

-o FILE, --output FILE

Set output file name

-O LEVEL, -optimize LEVEL

Optimize output file size

--oformat [binary]

Set output format

-p

(ARM only) Ignore for backward compatibility

-pie

Create a position independent executable

--pic-executable

Create a position independent executable

-no-pipeline-knowledge

(ARM only) Ignore for backward compatibility

--plugin PLUGIN

Load a plugin library

--plugin-opt OPTION

Pass an option to the plugin

--posix-fallocate

Use posix_fallocate to reserve space in the output file (default).

--no-posix-fallocate

Use fallocate or ftruncate to reserve space.

--preread-archive-symbols

Preread archive symbols when multi-threaded

--print-output-format

Print default output format

--print-symbol-counts FILENAME

Print symbols defined and used for each input

-Qy

Ignored for SVR4 compatibility

-q, --emit-relocs

Generate relocations in output

-r, -relocatable

Generate relocatable output

-i

Synonym for -r

--relax

Relax branches on certain targets

--retain-symbols-file FILE

keep only symbols listed in this file

-R DIR

Add DIR to runtime search path

-rpath DIR

Add DIR to runtime search path

--rpath-link DIR

Add DIR to link time shared library search path

--section-ordering-file FILENAME

Layout sections in the order specified.

--section-start SECTION=ADDRESS

Set address of section

--sort-common [={ascending,descending}]

Sort common symbols by alignment

--spare-dynamic-tags COUNT

Dynamic tag slots to reserve (default 5)

-s, --strip-all

Strip all symbols

-S, --strip-debug

Strip debugging information

--strip-debug-non-line

Emit only debug line number information

--strip-debug-gdb

Strip debug symbols that are unused by gdb (at least versions <= 7.4)

--strip-lto-sections

Strip LTO intermediate code sections

--stub-group-size SIZE

(ARM only) The maximum distance from instructions in a group of sections to their stubs. Negative values mean stubs are always after the group. 1 means using default size.

--no-keep-memory

Use less memory and more disk I/O (included only for compatibility with GNU ld)

-G, -shared

Generate shared library

-Bshareable

Generate shared library

--split-stack-adjust-size SIZE

Stack size when -fsplit-stack function calls non-split

-static

Do not link against shared libraries

--icf [none,all,safe]

Identical Code Folding. ’--icf=safe’ Folds ctors, dtors and functions whose pointers are definitely not taken.

--icf-iterations COUNT

Number of iterations of ICF (default 2)

--print-icf-sections

List folded identical sections on stderr

--no-print-icf-sections

Do not list folded identical sections

--keep-unique SYMBOL

Do not fold this symbol during ICF

--gc-sections

Remove unused sections

--no-gc-sections

Don’t remove unused sections (default)

--print-gc-sections

List removed unused sections on stderr

--no-print-gc-sections

Do not list removed unused sections

--stats

Print resource usage statistics

--sysroot DIR

Set target system root directory

-t, --trace

Print the name of each input file

-T FILE, --script FILE

Read linker script

--threads

Run the linker multi-threaded

--no-threads

Do not run the linker multi-threaded

--thread-count COUNT

Number of threads to use

--thread-count-initial COUNT

Number of threads to use in initial pass

--thread-count-middle COUNT Number of threads to use in middle pass

--thread-count-final COUNT

Number of threads to use in final pass

-Tbss ADDRESS

Set the address of the bss segment

-Tdata ADDRESS

Set the address of the data segment

-Ttext ADDRESS

Set the address of the text segment

-u SYMBOL, --undefined SYMBOL

Create undefined reference to SYMBOL

--unresolved-symbols
ignore-all,report-all,ignore-in-object-files,ignore-in-shared-libs

How to handle unresolved symbols

--verbose

Synonym for --debug=files

--version-script FILE

Read version script

--warn-common

Warn about duplicate common symbols

--no-warn-common

Do not warn about duplicate common symbols (default)

--warn-constructors

Ignored

--no-warn-constructors

Ignored

--warn-execstack

Warn if the stack is executable

--no-warn-execstack

Do not warn if the stack is executable (default)

--no-warn-mismatch

Don’t warn about mismatched input files

--warn-multiple-gp

Ignored

--warn-search-mismatch

Warn when skipping an incompatible library

--no-warn-search-mismatch

Don’t warn when skipping an incompatible library

--warn-shared-textrel

Warn if text segment is not shareable

--no-warn-shared-textrel

Do not warn if text segment is not shareable (default)

--warn-unresolved-symbols

Report unresolved symbols as warnings

--error-unresolved-symbols

Report unresolved symbols as errors

--no-wchar-size-warning

(ARM only) Do not warn about objects with incompatible wchar_t sizes

--whole-archive

Include all archive contents

--no-whole-archive

Include only needed archive contents

--wrap SYMBOL

Use wrapper functions for SYMBOL

-y SYMBOL, --trace-symbol SYMBOL

Trace references to symbol

--undefined-version

Allow unused version in script (default)

--no-undefined-version

Do not allow unused version in script

-Y PATH

Default search path for Solaris compatibility

-(, --start-group

Start a library search group

-), --end-group

End a library search group

--start-lib

Start a library

--end-lib

End a library

-fuse-ld

Ignored for GCC linker option compatibility

-z combreloc

Sort dynamic relocs

-z nocombreloc

Do not sort dynamic relocs

-z common-page-size=SIZE

Set common page size to SIZE

-z defs

Report undefined symbols (even with --shared)

-z execstack

Mark output as requiring executable stack

-z initfirst

Mark DSO to be initialized first at runtime

-z interpose

Mark object to interpose all DSOs but executable

-z lazy

Mark object for lazy runtime binding (default)

-z loadfltr

Mark object requiring immediate process

-z max-page-size=SIZE

Set maximum page size to SIZE

-z muldefs

Allow multiple definitions of symbols

-z nocopyreloc

Do not create copy relocs

-z nodefaultlib

Mark object not to use default search paths

-z nodelete

Mark DSO non-deletable at runtime

-z nodlopen

Mark DSO not available to dlopen

-z nodump

Mark DSO not available to dldump

-z noexecstack

Mark output as not requiring executable stack

-z now

Mark object for immediate function binding

-z origin

Mark DSO to indicate that needs immediate $ORIGIN processing at runtime

-z relro

Where possible mark variables read-only after relocation

-z norelro

Don’t mark variables read-only after relocation

-z text

Do not permit relocations in read-only segments

-z notext

Permit relocations in read-only segments (default)

-z textoff

Permit relocations in read-only segments (default)

-z buildd

Dummy z option

ld.gold: supported targets: elf32-i386 elf32-i386-freebsd elf32-i386-nacl elf32-x86-64 elf32-x86-64-freebsd elf32-x86-64-nacl elf64-x86-64 elf64-x86-64-freebsd elf64-x86-64-nacl ld.gold: supported emulations: elf_i386 elf_i386_nacl elf32_x86_64 elf32_x86_64_nacl elf_x86_64 elf_x86_64_nacl

copyright

Copyright 2011 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty.

reporting bugs

Report bugs to <http://www.sourceware.org/bugzilla/>


see also

The full documentation for gold is maintained as a Texinfo manual. If the info and gold programs are properly installed at your site, the command

info gold

should give you access to the complete manual.

How can this site be more helpful to YOU ?


give  feedback