Close Menu
    Facebook X (Twitter) Instagram
    Command Linux
    • About
    • How to
      • Q&A
    • OS
      • Windows
      • Arch Linux
    • AI
    • Gaming
      • Easter Eggs
    • Statistics
    • Blog
      • Featured
    • MORE
      • IP Address
      • Man Pages
    • Write For Us
    • Contact
    Command Linux
    Home - man page - GOLD

    GOLD

    WillieBy WillieFebruary 2, 2026Updated:February 2, 2026No Comments10 Mins Read

    NAME

    gold – The GNU ELF linker  

    SYNOPSIS

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

    Willie
    • Website

    Willie has over 15 years of experience in Linux system administration and DevOps. After managing infrastructure for startups and enterprises alike, he founded Command Linux to share the practical knowledge he wished he had when starting out. He oversees content strategy and contributes guides on server management, automation, and security.

    Related Posts

    GRUB-MKSTANDALONE

    April 20, 2026

    EVP_DigestInit

    April 20, 2026

    BASHBUG

    April 20, 2026

    XMAN

    April 20, 2026
    Top Posts

    EXAMPLE

    February 5, 2026

    KERNEL-COMMAND-LINE

    April 15, 2026

    GLOB

    February 4, 2026

    How To Change Permissions Of A File In Linux

    March 12, 2026
    • Home
    • Contact Us
    • Privacy Policy
    • Terms of Use

    Type above and press Enter to search. Press Esc to cancel.