NAME
gold – The GNU ELF linkerSYNOPSIS
ld.gold [,options/] ,file/…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
- -Bstatic -l does not search for shared libraries
-
- 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
- –build-id-chunk-size-for-treehash SIZE
- Chunk size for ‘–build-id=tree’
- –build-id-min-file-size-for-treehash SIZE
- Minimum output file size for ‘–build-id=tree’ to work differently than ‘–build-id=sha1’
- –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
- –text-reorder
- Enable text section reordering for GCC section names (default)
- –no-text-reorder
- Disable text section reordering for GCC section names
- -nostdlib
- Only search directories specified on the command line.
- –rosegment
- Put read-only non-executable sections in their own segment
- –rosegment-gap OFFSET
- Set offset between executable and read-only segments
- -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
- -no-pie
- Do not create a position independent executable
- –pic-executable
- Create a position independent executable
- –no-pic-executable
- Do not create a position independent executable
- -no-pipeline-knowledge
- (ARM only) Ignore for backward compatibility
- –plt-align [=P2ALIGN]
- (PowerPC64 only) Align PLT call stubs to fit cache lines
- –plt-static-chain
- (PowerPC64 only) PLT call stubs should load r11
- –no-plt-static-chain
- (PowerPC64 only) PLT call stubs should not load r11
- –plt-thread-safe
- (PowerPC64 only) PLT call stubs with load-load barrier
- –no-plt-thread-safe
- (PowerPC64 only) PLT call stubs without barrier
- –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
- –sort-section [none,name]
- Sort sections by name. ‘–no-text-reorder’ will override ‘–sort-section=name’ for .text
- –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, PowerPC only) The maximum distance from instructions in a group of sections to their stubs. Negative values mean stubs are always after (PowerPC before) the group. 1 means use 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
- -Ttext-segment ADDRESS
- Set the address of the text segment
- -Trodata-segment ADDRESS
- Set the address of the rodata segment
- –toc-optimize
- (PowerPC64 only) Optimize TOC code sequences
- –no-toc-optimize
- (PowerPC64 only) Don’t optimize TOC code sequences
- –toc-sort
- (PowerPC64 only) Sort TOC and GOT sections
- –no-toc-sort
- (PowerPC64 only) Don’t sort TOC and GOT sections
- -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
REPORTING BUGS
Report bugs to < http://www.sourceware.org/bugzilla/>COPYRIGHT
Copyright © 2014 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.