OS Manuals

/usr/x86_64-pc-linux-gnu/bin/ld

GNU binutils

From binutils 2.47-r4 (os), captured 2026-11-10 by running ld --help (exit 0). permalink

Usage: /usr/x86_64-pc-linux-gnu/bin/ld [options] file...
Options:
  -a KEYWORD                  Shared library control for HP/UX compatibility
  -A ARCH, --architecture ARCH
                              Set architecture
  -b TARGET, --format TARGET  Specify target for following input files
  -c FILE, --mri-script FILE  Read MRI format linker script
  -d, -dc, -dp                Force common symbols to be defined
  --dependency-file FILE      Write dependency file
  --force-group-allocation    Force group members out of groups
  -e ADDRESS, --entry ADDRESS Set start address
  -E, --export-dynamic        Export all dynamic symbols
  --no-export-dynamic         Undo the effect of --export-dynamic
  --enable-non-contiguous-regions
                              Enable support of non-contiguous memory regions
  --enable-non-contiguous-regions-warnings
                              Enable warnings when --enable-non-contiguous-regions may cause unexpected behaviour
  --disable-linker-version    Disable the LINKER_VERSION linker script directive
  --enable-linker-version     Enable the LINKER_VERSION linker script directive
  -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
  -g                          Ignored
  -G SIZE, --gpsize SIZE      Small data size (if no size, same as --shared)
  -h FILENAME, -soname FILENAME
                              Set internal name of shared library
  -I PROGRAM, --dynamic-linker PROGRAM
                              Set PROGRAM as the dynamic linker to use
  --no-dynamic-linker         Produce an executable with no program interpreter header
  -l LIBNAME, --library LIBNAME
                              Search for library LIBNAME
  -L DIRECTORY, --library-path DIRECTORY
                              Add DIRECTORY to library search path
  --sysroot=<DIRECTORY>       Override the default sysroot location
  -m EMULATION                Set emulation
  -M, --print-map             Print map file on standard output
  -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
  -o FILE, --output FILE      Set output file name
  -O LEVEL                    Optimize output file
  --out-implib FILE           Generate import library
  -plugin PLUGIN              Load named plugin
  -plugin-opt ARG             Send arg to last-loaded plugin
  -plugin-save-temps          Store plugin intermediate files permanently
  -flto                       Ignored for GCC LTO option compatibility
  -flto-partition=            Ignored for GCC LTO option compatibility
  -fuse-ld=                   Ignored for GCC linker option compatibility
  --map-whole-files           Ignored for gold option compatibility
  --no-map-whole-files        Ignored for gold option compatibility
  -Qy                         Ignored for SVR4 compatibility
  -q, --emit-relocs           Generate relocations in final output
  -r, -i, --relocatable       Generate relocatable output
  -R FILE, --just-symbols FILE
                              Just link symbols (if directory, same as --rpath)
  --remap-inputs-file FILE    Provide a FILE containing input remapings
  --remap-inputs PATTERN=FILE Remap input files matching PATTERN to FILE
  -s, --strip-all             Strip all symbols
  -S, --strip-debug           Strip debugging symbols
  --strip-discarded           Strip symbols in discarded sections
  --no-strip-discarded        Do not strip symbols in discarded sections
  -t, --trace                 Trace file opens
  -T FILE, --script FILE      Read linker script
  --default-script FILE, -dT  Read default linker script
  -u SYMBOL, --undefined SYMBOL
                              Start with undefined reference to SYMBOL
  --require-defined SYMBOL    Require SYMBOL be defined in the final output
  --unique [=SECTION]         Don't merge input [SECTION | orphan] sections
  -Ur                         Build global constructor/destructor tables
  -v, --version               Print version information
  -V                          Print version and emulation information
  -x, --discard-all           Discard all local symbols
  -X, --discard-locals        Discard temporary local symbols (default)
  --discard-none              Don't discard any local symbols
  -y SYMBOL, --trace-symbol SYMBOL
                              Trace mentions of SYMBOL
  -Y PATH                     Default search path for Solaris compatibility
  -(, --start-group           Start a group
  -), --end-group             End a group
  --accept-unknown-input-arch Accept input files whose architecture cannot be determined
  --no-accept-unknown-input-arch
                              Reject input files whose architecture is unknown
  --as-needed                 Only set DT_NEEDED for following dynamic libs if used
  --no-as-needed              Always set DT_NEEDED for dynamic libraries mentioned on
                                the command line
  -assert KEYWORD             Ignored for SunOS compatibility
  -Bdynamic, -dy, -call_shared
                              Link against shared libraries
  -Bstatic, -dn, -non_shared, -static
                              Do not link against shared libraries
  -Bno-symbolic               Don't bind global references locally
  -Bsymbolic                  Bind global references locally
  -Bsymbolic-functions        Bind global function references locally
  --check-sections            Check section addresses for overlaps (default)
  --no-check-sections         Do not check section addresses for overlaps
  --copy-dt-needed-entries    Copy DT_NEEDED links mentioned inside DSOs that follow
  --no-copy-dt-needed-entries Do not copy DT_NEEDED links mentioned inside DSOs that follow
  --cref                      Output cross reference table
  --defsym SYMBOL=EXPRESSION  Define a symbol
  --demangle [=STYLE]         Demangle symbol names [using STYLE]
  --disable-multiple-abs-defs Do not allow multiple definitions with symbols included
                                in filename invoked by -R or --just-symbols
  --embedded-relocs           Generate embedded relocs
  --fatal-warnings            Treat warnings as errors
  --no-fatal-warnings         Do not treat warnings as errors (default)
  -fini SYMBOL                Call SYMBOL at unload-time
  --force-exe-suffix          Force generation of file with .exe suffix
  --gc-sections               Remove unused sections (on some targets)
  --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
  --gc-keep-exported          Keep exported symbols when removing unused sections
  --hash-size=<NUMBER>        Set default hash table size close to <NUMBER>
  --help                      Print option help
  -init SYMBOL                Call SYMBOL at load-time
  -Map FILE/DIR               Write a linker map to FILE or DIR/<outputname>.map
  --no-define-common          Do not define Common storage
  --no-demangle               Do not demangle symbol names
  --no-keep-memory            Use less memory and more disk I/O
  --no-undefined              Do not allow unresolved references in object files
  -w, --no-warnings           Do not display any warning or error messages
  --allow-shlib-undefined     Allow unresolved references in shared libraries
  --no-allow-shlib-undefined  Do not allow unresolved references in shared libs
  --allow-multiple-definition Allow multiple definitions
  --error-handling-script SCRIPT
                              Provide a script to help with undefined symbol errors
  --undefined-version         Allow undefined version
  --no-undefined-version      Disallow undefined version
  --default-symver            Create default symbol version
  --default-imported-symver   Create default symbol version for imported symbols
  --no-warn-mismatch          Don't warn about mismatched input files
  --no-warn-search-mismatch   Don't warn on finding an incompatible library
  --no-whole-archive          Turn off --whole-archive
  --no-link-mapless           Reject archives without a symbol map
  --end-lib                   Treat files specified as link objects
  --noinhibit-exec            Create an output file even if errors occur
  -nostdlib                   Only use library directories specified on
                                the command line
  --oformat TARGET            Specify target of output file
  --print-output-format       Print default output format
  --print-sysroot             Print current sysroot
  -qmagic                     Ignored for Linux compatibility
  --reduce-memory-overheads   Reduce memory overheads, possibly taking much longer
  --max-cache-size=SIZE       Set the maximum cache size to SIZE bytes
  --relax                     Reduce code size by using target specific optimizations
  --no-relax                  Do not use relaxation techniques to reduce code size
  --retain-symbols-file FILE  Keep only symbols listed in FILE
  -rpath PATH                 Set runtime shared library search path
  -rpath-link PATH            Set link time shared library search path
  -shared, -Bshareable        Create a shared library
  -pie, --pic-executable      Create a position independent executable
  -no-pie                     Create a position dependent executable (default)
  --sort-common [=ascending|descending]
                              Sort common symbols by alignment [in specified order]
  --sort-section name|alignment
                              Sort sections by name or maximum alignment
  --section-ordering-file FILE
                              Sort sections by statements in FILE
  --spare-dynamic-tags COUNT  How many tags to reserve in .dynamic section
  --split-by-file [=SIZE]     Split output sections every SIZE octets
  --split-by-reloc [=COUNT]   Split output sections every COUNT relocs
  --stats                     Print resource usage statistics
  --no-stats                  Do not print resource usage statistics
  --target-help               Display target specific options
  --task-link SYMBOL          Do task level linking
  --traditional-format        Use same format as native linker
  --section-start SECTION=ADDRESS
                              Set address of named section
  --image-base ADDRESS        Set image base address
  -Tbss ADDRESS               Set address of .bss section
  -Tdata ADDRESS              Set address of .data section
  -Ttext ADDRESS              Set address of .text section
  -Ttext-segment ADDRESS      Set address of text segment
  -Trodata-segment ADDRESS    Set address of rodata segment
  -Tldata-segment ADDRESS     Set address of ldata segment
  --unresolved-symbols=<method>
                              How to handle unresolved symbols.  <method> is:
                                ignore-all, report-all, ignore-in-object-files,
                                ignore-in-shared-libs
  --verbose [=NUMBER]         Output lots of information during link
  --version-script FILE       Read version information script
  --version-exports-section SYMBOL
                              Take export symbols list from .exports, using
                                SYMBOL as the version.
  --dynamic-list-data         Add data symbols to dynamic list
  --dynamic-list-cpp-new      Use C++ operator new/delete dynamic list
  --dynamic-list-cpp-typeinfo Use C++ typeinfo dynamic list
  --dynamic-list FILE         Read dynamic list
  --export-dynamic-symbol SYMBOL
                              Export the specified symbol
  --export-dynamic-symbol-list FILE
                              Read export dynamic symbol list
  --warn-common               Warn about duplicate common symbols
  --warn-constructors, --error-execstack, --no-error-execstack, --warn-execstack-objects, --warn-execstack, --no-warn-execstack, --error-rwx-segments, --no-error-rwx-segments, --warn-rwx-segments, --no-warn-rwx-segments
                              Warn if global constructors/destructors are seen
  --warn-multiple-gp          Warn if the multiple GP values are used
  --warn-once                 Warn only once per undefined symbol
  --warn-section-align        Warn if start of section changes due to alignment
  --warn-textrel              Warn if output has DT_TEXTREL
  --warn-alternate-em         Warn if an object has alternate ELF machine code
  --warn-unresolved-symbols   Report unresolved symbols as warnings
  --error-unresolved-symbols  Report unresolved symbols as errors
  --whole-archive             Include all objects from following archives
  --link-mapless              Accept archives without a symbol map
  --start-lib                 Treat files specified as artificial archive members
  --wrap SYMBOL               Use wrapper functions for SYMBOL
  --ignore-unresolved-symbol SYMBOL
                              Unresolved SYMBOL will not cause an error or warning
  --push-state                Push state of flags governing input file handling
  --pop-state                 Pop state of flags governing input file handling
  --print-memory-usage        Report target memory usage
  --orphan-handling =MODE     Control how orphan sections are handled.
  --print-map-discarded       Show discarded sections in map file output (default)
  --no-print-map-discarded    Do not show discarded sections in map file output
  --print-map-locals          Show local symbols in map file output
  --no-print-map-locals       Do not show local symbols in map file output (default)
  --ctf-variables             Emit names and types of static variables in CTF
  --no-ctf-variables          Do not emit names and types of static variables in CTF
  --ctf-share-types=<method>  How to share CTF types between translation units.
                                <method> is: share-unconflicted (default),
                                             share-duplicated
  @FILE                       Read options from FILE
/usr/x86_64-pc-linux-gnu/bin/ld: supported targets: elf64-x86-64 elf32-i386 elf32-x86-64 pei-i386 pe-x86-64 pei-x86-64 elf64-little elf64-big elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex plugin
/usr/x86_64-pc-linux-gnu/bin/ld: supported emulations: elf_x86_64 elf_i386 elf32_x86_64
/usr/x86_64-pc-linux-gnu/bin/ld: emulation specific options:
ELF emulations:
  --ld-generated-unwind-info  Generate exception handling info for PLT
  --no-ld-generated-unwind-info
                              Don't generate exception handling info for PLT
  --discard-sframe            Don't generate SFrame stack trace info in output
  --build-id[=STYLE]          Generate build ID note
                                Styles: none,md5,sha1,uuid,0xHEX
  --package-metadata[=JSON]   Generate package metadata note
  --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi|zstd]
			      Compress DWARF debug sections
                                Default: none
  -z common-page-size=SIZE    Set common page size to SIZE
  -z max-page-size=SIZE       Set maximum page size to SIZE
  -z defs                     Report unresolved symbols in object files
  -z undefs                   Ignore unresolved symbols in object files
  -z muldefs                  Allow multiple definitions
  -z stack-size=SIZE          Set size of stack segment
  -z execstack                Mark executable as requiring executable stack
  -z noexecstack              Mark executable as not requiring executable stack
  --warn-execstack-objects    Generate a warning if an object file requests an executable stack
  --warn-execstack            Generate a warning if creating an executable stack (default)
  --no-warn-execstack         Do not generate a warning if creating an executable stack
  --error-execstack           Turn warnings about executable stacks into errors
  --no-error-execstack        Do not turn warnings about executable stacks into errors
  --warn-rwx-segments         Generate a warning if a LOAD segment has RWX permissions (default)
  --no-warn-rwx-segments      Do not generate a warning if a LOAD segments has RWX permissions
  --error-rwx-segments        Turn warnings about loadable RWX segments into errors
  --no-error-rwx-segments     Do not turn warnings about loadable RWX segments into errors
  -z unique-symbol            Avoid duplicated local symbol names
  -z nounique-symbol          Keep duplicated local symbol names (default)
  -z globalaudit              Mark executable requiring global auditing
  -z start-stop-gc            Enable garbage collection on __start/__stop
  -z nostart-stop-gc          Don't garbage collect __start/__stop (default)
  -z start-stop-visibility=V  Set visibility of built-in __start/__stop symbols
                                to DEFAULT, PROTECTED, HIDDEN or INTERNAL
  -z sectionheader            Generate section header (default)
  -z nosectionheader          Do not generate section header
  --audit=AUDITLIB            Specify a library to use for auditing
  -Bgroup                     Selects group name lookup rules for DSO
  --disable-new-dtags         Disable new dynamic tags
  --enable-new-dtags          Enable new dynamic tags
  --eh-frame-hdr              Create .eh_frame_hdr section
  --no-eh-frame-hdr           Do not create .eh_frame_hdr section
  --exclude-libs=LIBS         Make all symbols in LIBS hidden
  --hash-style=STYLE          Set hash style to sysv/gnu/both.  Default: gnu
  -P AUDITLIB, --depaudit=AUDITLIB
                              Specify a library to use for auditing dependencies
  -z combreloc                Merge dynamic relocs into one section and sort
  -z nocombreloc              Don't merge dynamic relocs into one section
  -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 by default, and only in the main namespace
  -z nounique                 Don't mark DSO as a loadable at most once
  -z lazy                     Mark object lazy runtime binding (default)
  -z loadfltr                 Mark object requiring immediate process
  -z nocopyreloc              Don't 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 now                      Mark object non-lazy runtime binding
  -z origin                   Mark object requiring immediate $ORIGIN
                                processing at runtime
  -z relro                    Create RELRO program header (default)
  -z norelro                  Don't create RELRO program header
  -z separate-code            Create separate code program header (default)
  -z noseparate-code          Don't create separate code program header
  --rosegment                 With -z separate-code, create a single read-only segment
  --no-rosegment              With -z separate-code, creste two read-only segments (default)
  -z common                   Generate common symbols with STT_COMMON type
  -z nocommon                 Generate common symbols with STT_OBJECT type
  -z text                     Treat DT_TEXTREL in output as error (default)
  -z notext                   Don't treat DT_TEXTREL in output as error
  -z textoff                  Don't treat DT_TEXTREL in output as error
  -z memory-seal              Mark object be memory sealed
  -z nomemory-seal            Don't mark oject to be memory sealed (default)
elf_x86_64:
  -z noextern-protected-data  Do not treat protected data symbol as external
  -z indirect-extern-access   Enable indirect external access
  -z noindirect-extern-access Disable indirect external access (default)
  -z dynamic-undefined-weak   Make undefined weak symbols dynamic
  -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
  -z noreloc-overflow         Disable relocation overflow check
  -z call-nop=PADDING         Use PADDING as 1-byte NOP for branch
  -z ibtplt                   Generate IBT-enabled PLT entries
  -z ibt                      Generate GNU_PROPERTY_X86_FEATURE_1_IBT
  -z shstk                    Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK
  -z cet-report=[none|warning|error] (default: none)
                              Report missing IBT and SHSTK properties
  -z report-relative-reloc    Report relative relocations
  -z x86-64-{baseline|v[234]} Mark x86-64-{baseline|v[234]} ISA level as needed
  -z isa-level-report=[none|all|needed|used] (default: none)
                              Report x86-64 ISA level
  -z lam-u48                  Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U48
  -z lam-u48-report=[none|warning|error] (default: none)
                              Report missing LAM_U48 property
  -z lam-u57                  Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U57
  -z lam-u57-report=[none|warning|error] (default: none)
                              Report missing LAM_U57 property
  -z lam-report=[none|warning|error] (default: none)
                              Report missing LAM_U48 and LAM_U57 properties
  -z mark-plt                 Mark PLT with dynamic tags
  -z nomark-plt               Do not mark PLT with dynamic tags (default)
  -z pack-relative-relocs     Pack relative relocations
  -z nopack-relative-relocs   Do not pack relative relocations (default)
  --gnu2-tls-tag              Add GNU2_ABI_GNU2_TLS dependency (auto)
                                when no options are specified (default)
  --no-gnu2-tls-tag           Do not add GNU2_ABI_GNU2_TLS dependency
elf_i386:
  -z noextern-protected-data  Do not treat protected data symbol as external
  -z indirect-extern-access   Enable indirect external access
  -z noindirect-extern-access Disable indirect external access (default)
  -z dynamic-undefined-weak   Make undefined weak symbols dynamic
  -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
  -z call-nop=PADDING         Use PADDING as 1-byte NOP for branch
  -z ibtplt                   Generate IBT-enabled PLT entries
  -z ibt                      Generate GNU_PROPERTY_X86_FEATURE_1_IBT
  -z shstk                    Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK
  -z cet-report=[none|warning|error] (default: none)
                              Report missing IBT and SHSTK properties
  -z report-relative-reloc    Report relative relocations
  -z x86-64-{baseline|v[234]} Mark x86-64-{baseline|v[234]} ISA level as needed
  -z isa-level-report=[none|all|needed|used] (default: none)
                              Report x86-64 ISA level
  -z pack-relative-relocs     Pack relative relocations
  -z nopack-relative-relocs   Do not pack relative relocations (default)
  --gnu2-tls-tag              Add GNU2_ABI_GNU2_TLS dependency (auto)
                                when no options are specified (default)
  --no-gnu2-tls-tag           Do not add GNU2_ABI_GNU2_TLS dependency
  --gnu-tls-tag               Add GLIBC_ABI_GNU_TLS dependency (auto)
                                when no options are specified (default)
  --no-gnu-tls-tag            Do not add GLIBC_ABI_GNU_TLS dependency
elf32_x86_64:
  -z noextern-protected-data  Do not treat protected data symbol as external
  -z indirect-extern-access   Enable indirect external access
  -z noindirect-extern-access Disable indirect external access (default)
  -z dynamic-undefined-weak   Make undefined weak symbols dynamic
  -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
  -z noreloc-overflow         Disable relocation overflow check
  -z call-nop=PADDING         Use PADDING as 1-byte NOP for branch
  -z ibtplt                   Generate IBT-enabled PLT entries
  -z ibt                      Generate GNU_PROPERTY_X86_FEATURE_1_IBT
  -z shstk                    Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK
  -z cet-report=[none|warning|error] (default: none)
                              Report missing IBT and SHSTK properties
  -z report-relative-reloc    Report relative relocations
  -z x86-64-{baseline|v[234]} Mark x86-64-{baseline|v[234]} ISA level as needed
  -z isa-level-report=[none|all|needed|used] (default: none)
                              Report x86-64 ISA level
  -z mark-plt                 Mark PLT with dynamic tags
  -z nomark-plt               Do not mark PLT with dynamic tags (default)
  -z pack-relative-relocs     Pack relative relocations
  -z nopack-relative-relocs   Do not pack relative relocations (default)
  --gnu2-tls-tag              Add GNU2_ABI_GNU2_TLS dependency (auto)
                                when no options are specified (default)
  --no-gnu2-tls-tag           Do not add GNU2_ABI_GNU2_TLS dependency

Report bugs to <https://sourceware.org/bugzilla/>
Options (294)
OptionDescriptionSource
-a KEYWORDThis option is supported for HP/UX compatibility.help + man
-b, --format TARGETld may be configured to support more than one kind of object file.help + man + man
-c, --mri-script FILEFor compatibility with linkers produced by MRI, ld accepts script files written in an alternate, restricted command language, described in the MRI Compatible Script Files section of GNU ld…help + man + man
-d, -dc, -dpThese three options are equivalent;help + man + man + man
--dependency-file FILEWrite a dependency file to depfile.help + man
--force-group-allocationThis option causes the linker to place section group members like normal input sections, and to delete the section groups.help + man
-E, --export-dynamicExport all dynamic symbolshelp + man + man
--no-export-dynamicWhen creating a dynamically linked executable, using the -E option or the --export-dynamic option causes the linker to add all symbols to the dynamic symbol table.help + man
--enable-non-contiguous-regionsThis option avoids generating an error if an input section does not fit a matching output section.help + man
--enable-non-contiguous-regions-warningsThis option enables warnings when "--enable-non-contiguous-regions" allows possibly unexpected matches in sections mapping, potentially leading to silently discarding a section instead of failing…help + man
--disable-linker-versionDisables the "LINKER_VERSION" linker script directive, so that it does not insert a version string.help + man
--enable-linker-versionEnables the "LINKER_VERSION" linker script directive, described in Output Section Data.help + man
-EBLink big-endian objects.help + man
-ELLink little-endian objects.help + man
-F, --filter SHLIBWhen creating an ELF shared object, set the internal DT_FILTER field to the specified name.help + man + man
-gIgnored.help + man
-G, --gpsize SIZESet the maximum size of objects to be optimized using the GP register to size.help + man + man
--no-dynamic-linkerWhen producing an executable file, omit the request for a dynamic linker to be used at load-time.help + man
--sysroot DIRECTORYUse directory as the location of the sysroot, overriding the configure-time default.help + man
-m EMULATIONEmulate the emulation linker.help + man
-M, --print-mapPrint a link map to the standard output.help + man + man
-n, --nmagicTurn off page alignment of sections, and disable linking against shared libraries.help + man + man
-N, --omagicSet the text and data sections to be readable and writable.help + man + man
--no-omagicThis option negates most of the effects of the -N option.help + man
-o, --output FILEUse output as the name for the program produced by ld;help + man + man
-O LEVELIf level is a numeric values greater than zero ld optimizes the output.help + man
--out-implib FILECreate an import library in file corresponding to the executable the linker is generating (eg.help + man
-plugin PLUGINInvolve a plugin in the linking process.help + man
-plugin-opt ARGSend arg to last-loaded pluginhelp
-plugin-save-tempsStore the plugin "temporary" intermediate files permanently.help + man
-fltoIgnored for GCC LTO option compatibilityhelp
-flto-partitionIgnored for GCC LTO option compatibilityhelp
-fuse-ldIgnored for GCC linker option compatibilityhelp
--map-whole-filesIgnored for gold option compatibilityhelp
--no-map-whole-filesIgnored for gold option compatibilityhelp
-QyThis option is ignored for SVR4 compatibility.help + man
-q, --emit-relocsLeave relocation sections and contents in fully linked executables.help + man + man
-r, -i, --relocatableGenerate relocatable output---i.e., generate an output file that can in turn serve as input to ld.help + man + man + man
--remap-inputs-file FILEThese options allow the names of input files to be changed before the linker attempts to open them.help + man
-s, --strip-allOmit all symbol information from the output file.help + man + man
-S, --strip-debugOmit debugger symbol information (but not all symbols) from the output file.help + man + man
--strip-discardedStrip symbols in discarded sectionshelp + man
--no-strip-discardedOmit (or do not omit) global symbols defined in discarded sections.help + man
-t, --tracePrint the names of the input files as ld processes them.help + man + man
-T, --script FILEUse scriptfile as the linker script.help + man + man
--default-script, -dT FILEUse scriptfile as the default linker script.help + man + man
--require-defined SYMBOLRequire that symbol is defined in the output file.help + man
--unique SECTIONDon't merge input [SECTION | orphan] sectionshelp
-UrFor programs that do not use constructors or destructors, or for ELF based systems this option is equivalent to -r: it generates relocatable output---i.e., an output file that can in turn serve as…help + man
-v, --versionPrint version informationhelp + man + man
-VPrint version and emulation informationhelp + man
-x, --discard-allDiscard all local symbolshelp + man + man
-X, --discard-localsDiscard temporary local symbols (default)help + man + man
--discard-noneDon't discard any local symbolshelp
-Y PATHDefault search path for Solaris compatibilityhelp + man
--start-group archivesThe archives should be a list of archive files.help + man
--end-groupEnd a grouphelp
--no-accept-unknown-input-archTells the linker to accept input files whose architecture cannot be recognised.help + man
--as-neededOnly set DT_NEEDED for following dynamic libs if usedhelp + man
--no-as-neededThis option affects ELF DT_NEEDED tags for dynamic libraries mentioned on the command line after the --as-needed option.help + man
-assert KEYWORDThis option is ignored for SunOS compatibility.help + man
-Bdynamic, -dy, -call_sharedLink against dynamic libraries.help + man + man + man
-Bstatic, -dn, -non_shared, -staticDo not link against shared libraries.help + man + man + man + man
-Bno-symbolicThis option can cancel previously specified -Bsymbolic and -Bsymbolic-functions.help + man
-BsymbolicWhen creating a shared library, bind references to global symbols to the definition within the shared library, if any.help + man
-Bsymbolic-functionsWhen creating a shared library, bind references to global function symbols to the definition within the shared library, if any.help + man
--check-sectionsCheck section addresses for overlaps (default)help + man
--no-check-sectionsAsks the linker not to check section addresses after they have been assigned to see if there are any overlaps.help + man
--copy-dt-needed-entriesCopy DT_NEEDED links mentioned inside DSOs that followhelp + man
--crefOutput a cross reference table.help + man
--defsym SYMBOL=EXPRESSIONCreate a global symbol in the output file, containing the absolute address given by expression.help + man
--demangle STYLEDemangle symbol names [using STYLE]help
--embedded-relocsThis option is similar to the --emit-relocs option except that the relocs are stored in a target-specific section.help + man
--fatal-warningsTreat warnings as errorshelp + man
--no-fatal-warningsDo not treat warnings as errors (default)help + man
-fini SYMBOLWhen creating an ELF executable or shared object, call NAME when the executable or shared object is unloaded, by setting DT_FINI to the address of the function.help + man
--force-exe-suffixMake sure that an output file has a .exe suffix.help + man
--gc-sectionsRemove unused sections (on some targets)help + man
--no-gc-sectionsEnable garbage collection of unused input sections.help + man
--print-gc-sectionsList removed unused sections on stderrhelp + man
--no-print-gc-sectionsList all sections removed by garbage collection.help + man
--gc-keep-exportedWhen --gc-sections is enabled, this option prevents garbage collection of unused input sections that contain global symbols having default or protected visibility.help + man
--hash-size NUMBERSet the default size of the linker's hash tables to a prime number close to number.help + man
--helpPrint a summary of the command-line options on the standard output and exit.help + man
-init SYMBOLWhen creating an ELF executable or shared object, call NAME when the executable or shared object is loaded, by setting DT_INIT to the address of the function.help + man
-Map FILE/DIRWrite a linker map to FILE or DIR/<outputname>.maphelp + man
--no-define-commonThis option inhibits the assignment of addresses to common symbols.help + man
--no-demangleThese options control whether to demangle symbol names in error messages and other output.help + man
--no-keep-memoryld normally optimizes for speed over memory usage by caching the symbol tables of input files in memory.help + man
--no-undefinedDo not allow unresolved references in object fileshelp + man
-w, --no-warningsDo not display any warning or error messages.help + man + man
--allow-shlib-undefinedAllow unresolved references in shared librarieshelp + man
--no-allow-shlib-undefinedAllows or disallows undefined symbols in shared libraries.help + man
--error-handling-script SCRIPTIf this option is provided then the linker will invoke scriptname whenever an error is encountered.help + man
--undefined-versionAllow undefined versionhelp
--no-undefined-versionNormally when a symbol has an undefined version, the linker will ignore it.help + man
--default-symverCreate and use a default symbol version (the soname) for unversioned exported symbols.help + man
--default-imported-symverCreate and use a default symbol version (the soname) for unversioned imported symbols.help + man
--no-warn-mismatchNormally ld will give an error if you try to link together input files that are mismatched for some reason, perhaps because they have been compiled for different processors or for different…help + man
--no-warn-search-mismatchNormally ld will give a warning if it finds an incompatible library during a library search.help + man
--no-whole-archiveTurn off the effect of the --whole-archive option for subsequent archive files.help + man
--no-link-maplessReject archives that lack an index aka symbol map for all the subsequent archives referred on the command line.help + man
--end-libTreat files specified as link objectshelp
--noinhibit-execRetain the executable output file whenever it is still usable.help + man
-nostdlibOnly search library directories explicitly specified on the command line.help + man
--oformat TARGETld may be configured to support more than one kind of object file.help + man
--print-output-formatPrint the name of the default output format (perhaps influenced by other command-line options).help + man
--print-sysrootPrint current sysroothelp
-qmagicThis option is ignored for Linux compatibility.help + man
--reduce-memory-overheadsThis option reduces memory requirements at ld runtime, at the expense of linking speed.help + man
--max-cache-size SIZEld normally caches the relocation information and symbol tables of input files in memory with the unlimited size.help + man
--relaxReduce code size by using target specific optimizationshelp + man
--no-relaxDo not use relaxation techniques to reduce code sizehelp + man
--retain-symbols-file FILERetain only the symbols listed in the file filename, discarding all others.help + man
-rpath PATHAdd a directory to the runtime library search path.help + man
-rpath-link PATHWhen using ELF or SunOS, one shared library may require another.help + man
-shared, -BshareableCreate a shared library.help + man + man
-pie, --pic-executableCreate a position independent executable.help + man + man
-no-pieCreate a position dependent executable (default)help + man
--sort-common ascending|descendingSort common symbols by alignment [in specified order]help + man
--sort-section name|alignmentThis option will apply "SORT_BY_NAME" to all wildcard section patterns in the linker script.help + man
--section-ordering-file FILEThis option is used to augment the current linker script with additional mapping of input sections to output sections.help + man
--spare-dynamic-tags COUNTThis option specifies the number of empty slots to leave in the .dynamic section of ELF shared objects.help + man
--split-by-file SIZESplit output sections every SIZE octetshelp
--split-by-reloc COUNTSplit output sections every COUNT relocshelp
--statsPrint resource usage statisticshelp
--no-statsDisables the reporting of usage statistics, should it have been enabled via the --stats command line option or the LD_STATS environment variable.help + man
--target-helpPrint a summary of all target-specific options on the standard output and exit.help + man
--task-link SYMBOLThis is used by COFF/PE based targets to create a task-linked object file where all of the global symbols have been converted to statics.help + man
--traditional-formatFor some targets, the output of ld is different in some ways from the output of some existing linker.help + man
--section-start SECTION=ADDRESSLocate a section in the output file at the absolute address given by org.help + man
--image-base ADDRESSWhen using ELF, same as -Ttext-segment, with both options effectively setting the base address of the ELF executable.help + man
-Tbss ADDRESSSet address of .bss sectionhelp + man
-Tdata ADDRESSSet address of .data sectionhelp + man
-Ttext ADDRESSSame as --section-start, with ".bss", ".data" or ".text" as the sectionname.help + man
-Ttext-segment ADDRESSWhen creating an ELF executable, it will set the address of the first byte of the first segment.help + man
-Trodata-segment ADDRESSWhen creating an ELF executable or shared object for a target where the read-only data is in its own segment separate from the executable text, it will set the address of the first byte of the…help + man
-Tldata-segment ADDRESSWhen creating an ELF executable or shared object for x86-64 medium memory model, it will set the address of the first byte of the ldata segment.help + man
--unresolved-symbols methodDetermine how to handle unresolved symbols.help + man
--verbose NUMBEROutput lots of information during linkhelp
--version-script FILESpecify the name of a version script to the linker.help + man
--version-exports-section SYMBOLTake export symbols list from .exports, using SYMBOL as the version.help
--dynamic-list-dataInclude all global data symbols to the dynamic list.help + man
--dynamic-list-cpp-newProvide the builtin dynamic list for C++ operator new and delete.help + man
--dynamic-list FILESpecify the name of a dynamic list file to the linker.help + man
--export-dynamic-symbol SYMBOLWhen creating a dynamically linked executable, symbols matching glob will be added to the dynamic symbol table.help + man
--export-dynamic-symbol-list FILESpecify a --export-dynamic-symbol for each pattern in the file.help + man
--warn-commonWarn when a common symbol is combined with another common symbol or with a symbol definition.help + man
--warn-constructors, --error-execstack, --no-error-execstack, --warn-execstack-objects, --warn-execstack, --no-warn-execstack, --error-rwx-segments, --no-error-rwx-segments, --warn-rwx-segments, --no-warn-rwx-segmentsIf the linker is going to generate a warning message about an executable, writeable segment, or an executable TLS segment, then the --error-rwx-segments option will turn this warning into an error…help + man + man + man + man + man + man + man + man + man + man
--warn-multiple-gpWarn if multiple global pointer values are required in the output file.help + man
--warn-onceOnly warn once for each undefined symbol, rather than once per module which refers to it.help + man
--warn-section-alignWarn if the address of an output section is changed because of alignment.help + man
--warn-textrelWarn if the linker adds DT_TEXTREL to a position-independent executable or shared object.help + man
--warn-alternate-emWarn if an object has alternate ELF machine code.help + man
--warn-unresolved-symbolsIf the linker is going to report an unresolved symbol (see the option --unresolved-symbols) it will normally generate an error.help + man
--error-unresolved-symbolsThis restores the linker's default behaviour of generating errors when it is reporting unresolved symbols.help + man
--whole-archiveFor each archive mentioned on the command line after the --whole-archive option, include every object file in the archive in the link, rather than searching the archive for the required object files.help + man
--link-maplessAccept archives that lack an index aka symbol map for all the subsequent archives referred on the command line.help + man
--start-lib objectsTreat files specified as artificial archive membershelp + man
--wrap SYMBOLUse a wrapper function for symbol.help + man
--ignore-unresolved-symbol SYMBOLUnresolved SYMBOL will not cause an error or warninghelp
--push-stateThe --push-state allows one to preserve the current state of the flags which govern the input file handling so that they can all be restored with one corresponding --pop-state option.help + man
--pop-stateUndoes the effect of --push-state, restores the previous values of the flags governing input file handling.help + man
--print-memory-usagePrint used size, total size and used size of memory regions created with the MEMORY command.help + man
--orphan-handling MODEControl how orphan sections are handled.help + man
--print-map-discardedShow discarded sections in map file output (default)help + man
--no-print-map-discardedPrint (or do not print) the list of discarded and garbage collected sections in the link map.help + man
--print-map-localsShow local symbols in map file outputhelp + man
--no-print-map-localsDo not show local symbols in map file output (default)help + man
--ctf-variablesEmit names and types of static variables in CTFhelp + man
--no-ctf-variablesThe CTF debuginfo format supports a section which encodes the names and types of variables found in the program which do not appear in any symbol table.help + man
--ctf-share-types methodAdjust the method used to share types between translation units in CTF.help + man
--ld-generated-unwind-infoGenerate exception handling info for PLThelp
--no-ld-generated-unwind-infoRequest creation of ".eh_frame" unwind info for linker generated code sections like PLT.help + man
--discard-sframeDiscard ".sframe" stack trace info from the output.help + man
--build-id STYLEGenerate build ID note Styles: none,md5,sha1,uuid,0xHEXhelp + man
--package-metadata JSONRequest the creation of a ".note.package" ELF note section.help + man
--compress-debug-sections none|zlib|zlib-gnu|zlib-gabi|zstdCompress DWARF debug sections Default: nonehelp + man
-z common-page-size=SIZESet common page size to SIZEhelp + man
--audit AUDITLIBAdds AUDITLIB to the "DT_AUDIT" entry of the dynamic section.help + man
-BgroupSet the "DF_1_GROUP" flag in the "DT_FLAGS_1" entry in the dynamic section.help + man
--disable-new-dtagsThis linker can create the new dynamic tags in ELF.help + man
--enable-new-dtagsEnable new dynamic tagshelp + man
--eh-frame-hdrCreate .eh_frame_hdr sectionhelp + man
--no-eh-frame-hdrRequest (--eh-frame-hdr) or suppress (--no-eh-frame-hdr) the creation of ".eh_frame_hdr" section and ELF "PT_GNU_EH_FRAME" segment header.help + man
--exclude-libs LIBSSpecifies a list of archive libraries from which symbols should not be automatically exported.help + man
--hash-style STYLESet the type of linker's hash table(s).help + man
-P, --depaudit AUDITLIBAdds AUDITLIB to the "DT_DEPAUDIT" entry of the dynamic section.help + man + man
--rosegmentWith -z separate-code, create a single read-only segmenthelp + man
--no-rosegmentAttempt to ensure that only a single read-only, non-code segment is created.help + man
--gnu2-tls-tagAdd GNU2_ABI_GNU2_TLS dependency (auto) when no options are specified (default)help + man
--no-gnu2-tls-tagAdd "GLIBC_ABI_GNU2_TLS" version tag dependency in output programs and shared libraries when linking against glibc if input relocatable object files have "R_386_TLS_DESC_CALL" or…help + man
--gnu-tls-tagAdd GLIBC_ABI_GNU_TLS dependency (auto) when no options are specified (default)help + man
--no-gnu-tls-tagAdd "GLIBC_ABI_GNU_TLS" version tag dependency in output programs and shared libraries when linking against glibc if input relocatable object files call "___tls_get_addr".help + man
-e entry (in the manual page but not in --help)man
--entry entryUse entry as the explicit symbol for beginning execution of your program, rather than the default entry point. (in the manual page but not in --help)man
--exclude-modules-for-implib moduleSpecifies a list of object files or archive members, from which symbols should not be automatically exported, but which should be copied wholesale into the import library being generated during the… (in the manual page but not in --help)man
-f name (in the manual page but not in --help)man
--auxiliary nameWhen creating an ELF shared object, set the internal DT_AUXILIARY field to the specified name. (in the manual page but not in --help)man
-h name (in the manual page but not in --help)man
-soname nameWhen creating an ELF shared object, set the internal DT_SONAME field to the specified name. (in the manual page but not in --help)man
-l namespec (in the manual page but not in --help)man
--library namespecAdd the archive or object file specified by namespec to the list of files to link. (in the manual page but not in --help)man
-L searchdir (in the manual page but not in --help)man
--library-path searchdirAdd path searchdir to the list of paths that ld will search for archive libraries and ld control scripts. (in the manual page but not in --help)man
--remap-inputs pattern=filename (in the manual page but not in --help)man
--force-dynamicForce the output file to have dynamic sections. (in the manual page but not in --help)man
-R filename (in the manual page but not in --help)man
--just-symbols filenameRead symbol names and their addresses from filename, but do not relocate it or include it in the output. (in the manual page but not in --help)man
-u symbol (in the manual page but not in --help)man
--undefined symbolForce symbol to be entered in the output file as an undefined symbol. (in the manual page but not in --help)man
-y symbol (in the manual page but not in --help)man
--trace-symbol symbolPrint the name of each linked file in which symbol appears. (in the manual page but not in --help)man
--accept-unknown-input-arch (in the manual page but not in --help)man
--add-needed (in the manual page but not in --help)man
--no-add-neededThese two options have been deprecated because of the similarity of their names to the --as-needed and --no-as-needed options. (in the manual page but not in --help)man
--dynamic-list-cpp-typeinfoProvide the builtin dynamic list for C++ runtime type identification. (in the manual page but not in --help)man
--no-copy-dt-needed-entriesThis option affects the treatment of dynamic libraries referred to by DT_NEEDED tags inside ELF dynamic libraries mentioned on the command line. (in the manual page but not in --help)man
-Ifile (in the manual page but not in --help)man
--dynamic-linker fileSet the name of the dynamic linker. (in the manual page but not in --help)man
--disable-multiple-abs-defsDo not allow multiple definitions with symbols included in filename invoked by -R or --just-symbols (in the manual page but not in --help)man
--allow-multiple-definition (in the manual page but not in --help)man
--dll-verbose[--verbose[=NUMBER]](#verbose_=) (in the manual page but not in --help)man
--add-stdcall-aliasIf given, symbols with a stdcall suffix (@nn) will be exported as-is and also with the suffix stripped. (in the manual page but not in --help)man
--base-file fileUse file as the name of a file in which to save the base addresses of all the relocations needed for generating DLLs with dlltool. (in the manual page but not in --help)man
--dllCreate a DLL instead of a regular executable. (in the manual page but not in --help)man
--enable-long-section-names (in the manual page but not in --help)man
--disable-long-section-namesThe PE variants of the COFF object format add an extension that permits the use of section names longer than eight characters, the normal limit for COFF. (in the manual page but not in --help)man
--enable-stdcall-fixup (in the manual page but not in --help)man
--disable-stdcall-fixupIf the link finds a symbol that it cannot resolve, it will attempt to do "fuzzy linking" by looking for another defined symbol that differs only in the format of the symbol name (cdecl vs stdcall)… (in the manual page but not in --help)man
--leading-underscore (in the manual page but not in --help)man
--no-leading-underscoreFor most targets default symbol-prefix is an underscore and is defined in target's description. (in the manual page but not in --help)man
--export-all-symbolsIf given, all global symbols in the objects used to build a DLL will be exported by the DLL. (in the manual page but not in --help)man
--exclude-symbols symbolSpecifies a list of symbols which should not be automatically exported. (in the manual page but not in --help)man
--exclude-all-symbolsSpecifies no symbols should be automatically exported. (in the manual page but not in --help)man
--file-alignmentSpecify the file alignment. (in the manual page but not in --help)man
--heap reserve (in the manual page but not in --help)man
--kill-atIf given, the stdcall suffixes (@nn) will be stripped from symbols before they are exported. (in the manual page but not in --help)man
--large-address-awareIf given, the appropriate bit in the "Characteristics" field of the COFF header is set to indicate that this executable supports virtual addresses greater than 2 gigabytes. (in the manual page but not in --help)man
--disable-large-address-awareReverts the effect of a previous --large-address-aware option. (in the manual page but not in --help)man
--major-image-version valueSets the major number of the "image version". (in the manual page but not in --help)man
--major-os-version valueSets the major number of the "os version". (in the manual page but not in --help)man
--major-subsystem-version valueSets the major number of the "subsystem version". (in the manual page but not in --help)man
--minor-image-version valueSets the minor number of the "image version". (in the manual page but not in --help)man
--minor-os-version valueSets the minor number of the "os version". (in the manual page but not in --help)man
--minor-subsystem-version valueSets the minor number of the "subsystem version". (in the manual page but not in --help)man
--output-def fileThe linker will create the file file which will contain a DEF file corresponding to the DLL the linker is generating. (in the manual page but not in --help)man
--enable-auto-image-base (in the manual page but not in --help)man
--disable-auto-image-baseDo not automatically generate a unique image base. (in the manual page but not in --help)man
--dll-search-prefix stringWhen linking dynamically to a dll without an import library, search for "<string><basename>.dll" in preference to "lib<basename>.dll". (in the manual page but not in --help)man
--enable-auto-importDo sophisticated linking of "_symbol" to "__imp__symbol" for DATA imports from DLLs, thus making it possible to bypass the dllimport mechanism on the user side and to reference unmangled symbol names. (in the manual page but not in --help)man
--disable-auto-importDo not attempt to do sophisticated linking of "_symbol" to "__imp__symbol" for DATA imports from DLLs. (in the manual page but not in --help)man
--enable-runtime-pseudo-relocIf your code contains expressions described in --enable-auto-import section, that is, DATA imports from DLL with non-zero offset, this switch will create a vector of 'runtime pseudo relocations'… (in the manual page but not in --help)man
--disable-runtime-pseudo-relocDo not create pseudo relocations for non-zero offset DATA imports from DLLs. (in the manual page but not in --help)man
--enable-extra-pe-debugShow additional debug info related to auto-import symbol thunking. (in the manual page but not in --help)man
--section-alignmentSets the section alignment. (in the manual page but not in --help)man
--stack reserve (in the manual page but not in --help)man
--subsystem which (in the manual page but not in --help)man
--high-entropy-va (in the manual page but not in --help)man
--disable-high-entropy-vaImage is compatible with 64-bit address space layout randomization (ASLR). (in the manual page but not in --help)man
--dynamicbase (in the manual page but not in --help)man
--disable-dynamicbaseThe image base address may be relocated using address space layout randomization (ASLR). (in the manual page but not in --help)man
--forceinteg (in the manual page but not in --help)man
--disable-forceintegCode integrity checks are enforced. (in the manual page but not in --help)man
--nxcompat (in the manual page but not in --help)man
--disable-nxcompatThe image is compatible with the Data Execution Prevention. (in the manual page but not in --help)man
--no-isolation (in the manual page but not in --help)man
--disable-no-isolationAlthough the image understands isolation, do not isolate the image. (in the manual page but not in --help)man
--no-seh (in the manual page but not in --help)man
--disable-no-sehThe image does not use SEH. (in the manual page but not in --help)man
--no-bind (in the manual page but not in --help)man
--disable-no-bindDo not bind this image. (in the manual page but not in --help)man
--wdmdriver (in the manual page but not in --help)man
--disable-wdmdriverThe driver uses the MS Windows Driver Model. (in the manual page but not in --help)man
--tsaware (in the manual page but not in --help)man
--disable-tsawareThe image is Terminal Server aware. (in the manual page but not in --help)man
--insert-timestamp (in the manual page but not in --help)man
--no-insert-timestampInsert a real timestamp into the image. (in the manual page but not in --help)man
--enable-reloc-section (in the manual page but not in --help)man
--disable-reloc-sectionCreate the base relocation table, which is necessary if the image is loaded at a different image base than specified in the PE header. (in the manual page but not in --help)man
--dsbt-size sizeThis option sets the number of entries in the DSBT of the current executable or shared library to size. (in the manual page but not in --help)man
--dsbt-index indexThis option sets the DSBT index of the current executable or shared library to index. (in the manual page but not in --help)man
--branch-stubThis option enables linker branch relaxation by inserting branch stub sections when needed to extend the range of branches. (in the manual page but not in --help)man
--stub-group-size NThis option allows finer control of linker branch stub creation. (in the manual page but not in --help)man
--no-trampolineThis option disables the generation of trampoline. (in the manual page but not in --help)man
--bank-window nameThis option indicates to the linker the name of the memory region in the MEMORY specification that describes the memory bank window. (in the manual page but not in --help)man
--got typeThis option tells the linker which GOT generation scheme to use. (in the manual page but not in --help)man
--insn32 (in the manual page but not in --help)man
--no-insn32These options control the choice of microMIPS instructions used in code generated by the linker, such as that in the PLT or lazy binding stubs, or in relaxation. (in the manual page but not in --help)man
--ignore-branch-isa (in the manual page but not in --help)man
--no-ignore-branch-isaThese options control branch relocation checks for invalid ISA mode transitions. (in the manual page but not in --help)man
--compact-branches (in the manual page but not in --help)man
--no-compact-branchesThese options control the generation of compact instructions by the linker in the PLT entries for MIPS R6. (in the manual page but not in --help)man
--imagicMark the output as "IMAGIC" (0411) in the a.out header to indicate that when the output file is executed, the program text and data areas will be loaded into separate address spaces using the split… (in the manual page but not in --help)man

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.