Provided by: binutils-common_2.41-5ubuntu1_amd64 bug

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 © 2023 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.41) 1.September 2023                                  GOLD(1)