Provided by: binutils-common_2.42-4ubuntu2.5_amd64 
      
    
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 (default)
       --allow-multiple-definition Allow multiple definitions of symbols
       --no-allow-multiple-definition
              Do not allow multiple definitions (default)
       --allow-shlib-undefined
              Allow unresolved references in shared libraries
       --no-allow-shlib-undefined
              Do not allow unresolved references in shared libraries (default)
       --apply-dynamic-relocs
              Apply link-time values for dynamic relocations (default)
       --no-apply-dynamic-relocs
              (aarch64 only) Do not apply link-time values for dynamic relocations
       --as-needed
              Use DT_NEEDED only for shared libraries that are used
       --no-as-needed
              Use DT_NEEDED for all shared libraries (default)
       -assert [ignored]
              Ignored
       -b [elf,binary], --format [elf,binary]
              Set input format
       --be8  Output BE8 format image
       --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'
       -Bdynamic                   -l searches for shared libraries (default)
       -Bstatic                    -l does not search for shared libraries
       -dy    alias for -Bdynamic (default)
       -dn    alias for -Bstatic
       -Bgroup
              Use group name lookup rules for shared library
       -Bshareable
              Generate shared library (alias for -G/-shared)
       -Bno-symbolic
              Don't bind default visibility defined symbols locally for -shared (default)
       -Bsymbolic-functions
              Bind default visibility defined function symbols locally for -shared
       -Bsymbolic
              Bind default visibility defined symbols locally for -shared
       --check-sections
              Check segment addresses for overlaps (default)
       --no-check-sections
              Do not check segment addresses for overlaps
       --compress-debug-sections [none,zlib,zlib-gnu,zlib-gabi,zstd]
              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 (default)
       --cref
              Output cross reference table
       --no-cref
              Do not output cross reference table (default)
       --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 in relocatable output (default)
       -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
       --dependency-file FILE
              Write a dependency file listing all files read
       --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 (default)
       --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
       --emit-stub-syms
              (PowerPC only) Label linker stubs with a symbol (default)
       --no-emit-stub-syms
              (PowerPC only) Do not label linker stubs with a symbol
       -e ADDRESS, --entry ADDRESS Set program start address
       --eh-frame-hdr
              Create exception frame header
       --no-eh-frame-hdr
              Do not create exception frame header (default)
       --enable-new-dtags
              Enable use of DT_RUNPATH (default)
       --disable-new-dtags
              Disable use of DT_RUNPATH
       --enable-linker-version
              Put the linker version string into the .comment section
       --disable-linker-version
              Put the linker version string into the .note.gnu.gold-version section (default)
       --no-enum-size-warning
              (ARM only) Do not warn about objects with incompatible enum sizes
       --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.
       -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 (default)
       -fini SYMBOL
              Call SYMBOL at unload-time
       --fix-arm1176
              (ARM only) Fix binaries for ARM1176 erratum (default)
       --no-fix-arm1176
              (ARM only) Do not fix binaries for ARM1176 erratum
       --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 (default)
       --fix-cortex-a53-843419
              (AArch64 only) Fix Cortex-A53 erratum 843419
       --no-fix-cortex-a53-843419
              (AArch64 only) Do not fix Cortex-A53 erratum 843419 (default)
       --fix-cortex-a53-835769
              (AArch64 only) Fix Cortex-A53 erratum 835769
       --no-fix-cortex-a53-835769
              (AArch64 only) Do not fix Cortex-A53 erratum 835769 (default)
       --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
       -fuse-ld [gold,bfd]
              Ignored for GCC linker option compatibility
       -g     Ignored
       --gc-sections
              Remove unused sections
       --no-gc-sections
              Don't remove unused sections (default)
       --gdb-index
              Generate .gdb_index section
       --no-gdb-index
              Do not generate .gdb_index section (default)
       --gnu-unique
              Enable STB_GNU_UNIQUE symbol binding (default)
       --no-gnu-unique
              Disable STB_GNU_UNIQUE symbol binding
       -G, -shared
              Generate shared library
       -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     Alias for -r
       --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 3)
       --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 (default 10)
       -init SYMBOL
              Call SYMBOL at load-time
       -I PROGRAM, --dynamic-linker PROGRAM
              Set dynamic linker path
       --just-symbols FILE
              Read only symbol values from FILE
       --keep-files-mapped
              Keep files mapped across passes (default on 64bit architectures)
       --no-keep-files-mapped
              Release mapped files after each pass (default on 32bit architectures)
       --keep-unique SYMBOL
              Do not fold this symbol during ICF
       -l LIBNAME, --library LIBNAME
              Search for library LIBNAME
       --ld-generated-unwind-info
              Generate unwind information for PLT (default)
       --no-ld-generated-unwind-info
              Do not generate unwind information for PLT
       -L DIR, --library-path DIR
              Add directory to search path
       --long-plt
              (ARM only) Generate long PLT entries
       --no-long-plt
              (ARM only) Do not generate long PLT entries (default)
       -m EMULATION
              Set GNU linker emulation; obsolete
       --map-whole-files
              Map whole files to memory (default on 64bit architectures)
       --no-map-whole-files
              Map relevant file parts to memory (default on 32bit architectures)
       --merge-exidx-entries
              (ARM only) Merge exidx entries in debuginfo (default)
       --no-merge-exidx-entries
              (ARM only) Do not merge exidx entries in debuginfo
       --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 (default)
       --no-keep-memory
              Use less memory and more disk I/O (included only for compatibility with GNU ld)
       --no-undefined
              Report undefined symbols (even with --shared)
       --noinhibit-exec
              Create an output file even if errors occur
       -nostdlib
              Only search directories specified on the command line
       -o FILE, --output FILE
              Set output file name
       --oformat [binary]
              Set output format
       -O LEVEL, -optimize LEVEL
              Optimize output file size
       --orphan-handling [place,discard,warn,error]
              Orphan section handling
       -p     Ignored for ARM compatibility
       --package-metadata [=JSON]
              Generate package metadata note
       -pie   Create a position independent executable
       -no-pie
              Do not create a position independent executable (default)
       --pic-executable
              Create a position independent executable
       --no-pic-executable
              Do not create a position independent executable (default)
       --pic-veneer
              Force PIC sequences for ARM/Thumb interworking veneers
       -no-pipeline-knowledge
              (ARM only) Ignore for backward compatibility (default)
       --plt-align [=P2ALIGN]
              (PowerPC only) Align PLT call stubs to fit cache lines
       --plt-localentry
              (PowerPC64 only) Optimize calls to ELFv2 localentry:0 functions
       --no-plt-localentry
              (PowerPC64 only) Don't optimize ELFv2 calls (default)
       --plt-static-chain
              (PowerPC64 only) PLT call stubs should load r11
       --no-plt-static-chain
              (PowerPC64 only) PLT call stubs should not load r11 (default)
       --plt-thread-safe
              (PowerPC64 only) PLT call stubs with load-load barrier
       --no-plt-thread-safe
              (PowerPC64 only) PLT call stubs without barrier (default)
       --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
       --power10-stubs [=auto,no,yes]
              (PowerPC64 only) stubs use power10 insns
       --no-power10-stubs
              (PowerPC64 only) stubs do not use power10 insns
       --preread-archive-symbols
              Preread archive symbols when multi-threaded
       --print-gc-sections
              List removed unused sections on stderr
       --no-print-gc-sections
              Do not list removed unused sections (default)
       --print-icf-sections
              List folded identical sections on stderr
       --no-print-icf-sections
              Do not list folded identical sections (default)
       --print-output-format
              Print default output format
       --print-symbol-counts FILENAME
              Print symbols defined and used for each input
       --push-state
              Save the state of flags related to input files
       --pop-state
              Restore the state of flags related to input files
       -q, --emit-relocs
              Generate relocations in output
       -Qy    Ignored for SVR4 compatibility
       -r, -relocatable
              Generate relocatable output
       --relax
              Relax branches on certain targets
       --no-relax
              Do not relax branches (default)
       --retain-symbols-file FILE
              keep only symbols listed in this file
       --rosegment
              Put read-only non-executable sections in their own segment
       --no-rosegment
              Do not put read-only non-executable sections in their own segment (default)
       --rosegment-gap OFFSET
              Set offset between executable and read-only segments
       -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
       -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 (default)
       --section-ordering-file FILENAME
              Layout sections in the order specified
       --section-start SECTION=ADDRESS
              Set address of section
       --secure-plt
              (PowerPC only) Use new-style PLT (default)
       --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)
       --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 the group. 1 means use default size
       --stub-group-multi
              (PowerPC only) Allow a group of stubs to serve multiple output sections (default)
       --no-stub-group-multi
              (PowerPC only) Each output section has its own stubs
       --split-stack-adjust-size SIZE
              Stack size when -fsplit-stack function calls non-split
       -static
              Do not link against shared libraries
       --start-lib
              Start a library
       --end-lib
              End a library
       --stats
              Print resource usage statistics
       --sysroot DIR
              Set target system root directory
       -t, --trace
              Print the name of each input file
       --target1-abs
              (ARM only) Force R_ARM_TARGET1 type to R_ARM_ABS32
       --target1-rel
              (ARM only) Force R_ARM_TARGET1 type to R_ARM_REL32
       --target2 [rel, abs, got-rel
              (ARM only) Set R_ARM_TARGET2 relocation type
       --text-reorder
              Enable text section reordering for GCC section names (default)
       --no-text-reorder
              Disable text section reordering for GCC section names
       --threads
              Run the linker multi-threaded
       --no-threads
              Do not run the linker multi-threaded (default)
       --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
       --tls-optimize
              (PowerPC/64 only) Optimize GD/LD/IE code to IE/LE (default)
       --no-tls-optimize
              (PowerPC/64 only) Don'''t try to optimize TLS accesses
       --tls-get-addr-optimize
              (PowerPC/64 only) Use a special __tls_get_addr call (default)
       --no-tls-get-addr-optimize
              (PowerPC/64 only) Don't use a special __tls_get_addr call
       --toc-optimize
              (PowerPC64 only) Optimize TOC code sequences (default)
       --no-toc-optimize
              (PowerPC64 only) Don't optimize TOC code sequences
       --toc-sort
              (PowerPC64 only) Sort TOC and GOT sections (default)
       --no-toc-sort
              (PowerPC64 only) Don't sort TOC and GOT sections
       -T FILE, --script FILE
              Read linker script
       -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
       -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
              Alias 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-drop-version
              Warn when discarding version information
       --no-warn-drop-version
              Do not warn when discarding version information (default)
       --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 (default)
       --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 (default)
       -z buildd
              Dummy z option
       --no-wchar-size-warning
              (ARM only) Do not warn about objects with incompatible wchar_t sizes
       --weak-unresolved-symbols
              Convert unresolved symbols to weak references
       --whole-archive
              Include all archive contents
       --no-whole-archive
              Include only needed archive contents (default)
       --wrap SYMBOL
              Use wrapper functions for SYMBOL
       -x, --discard-all
              Delete all local symbols
       -X, --discard-locals
              Delete all temporary local symbols
       --discard-none
              Keep all local symbols
       -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
       -z combreloc
              Sort dynamic relocs (default)
       -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 global
              Make symbols in DSO available for subsequently loaded objects
       -z initfirst
              Mark DSO to be initialized first at runtime
       -z interpose
              Mark object to interpose all DSOs but executable
       -z unique
              Mark DSO to be loaded at most once, and only in the main namespace
       -z nounique
              Do not mark the DSO as one to be loaded only in the main namespace (default)
       -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 (default)
       -z norelro
              Don't mark variables read-only after relocation
       -z stack-size=SIZE
              Set PT_GNU_STACK segment p_memsz to SIZE
       -z start-stop-visibility=[default,internal,hidden,protected]
              ELF symbol visibility for synthesized __start_* and __stop_* symbols
       -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 text-unlikely-segment
              Move .text.unlikely sections to a separate segment.
       -z notext-unlikely-segment
              Do not move .text.unlikely sections to a separate segment. (default)
       -z keep-text-section-prefix Keep .text.hot, .text.startup,  .text.exit  and  .text.unlikely  as  separate
              sections in the final binary.
       -z nokeep-text-section-prefix
              Merge all .text.* prefix sections. (default)
       Run gold --help for a list of supported targets and emulations.
REPORTING BUGS
       Report bugs to <https://sourceware.org/bugzilla/>
COPYRIGHT
       Copyright  ©  2024 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.
GNU gold (GNU Binutils for Ubuntu 2.42) 1.16       March 2025                                            GOLD(1)