x86_64-linux-gnu-gold (1) Linux Manual Page
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-definitionAllow 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-treehashSIZE- Chunk size for ‘–build-id=tree’
–build-id-min-file-size-for-treehashSIZE- Minimum output file size for ‘–build-id=tree’ to work differently than ‘–build-id=sha1’
-
-Bdynamic-lsearches for shared libraries (default)-Bstatic-ldoes not search for shared libraries-dy -
- alias for
-Bdynamic(default) - alias for
-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]- Compress .debug_* sections in the output file
–copy-dt-needed-entries- Not supported
-
–no-copy-dt-needed-entriesDo 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
–defsymSYMBOL=EXPRESSION- Define a symbol
–demangle[=STYLE]- Demangle C++ symbols in log messages
–no-demangle- Do not demangle C++ symbols in log messages
–dependency-fileFILE- 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-typeinfoAdd C++ typeinfo to dynamic symbols–dynamic-listFILE -
- 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
-
-eADDRESS,–entryADDRESS 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
–no-enum-size-warning- (ARM only) Do not warn about objects with incompatible enum sizes
–exclude-libslib,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-symbolSYMBOL- Export SYMBOL to dynamic symbol table
-EB- Link big-endian objects.
-EL- Link little-endian objects.
-
-fSHLIB,–auxiliarySHLIB Auxiliary filter for shared object symbol table-FSHLIB,–filterSHLIB -
- Filter for shared object symbol table
–fatal-warnings- Treat warnings as errors
–no-fatal-warnings- Do not treat warnings as errors (default)
-finiSYMBOL- 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
-hFILENAME,-sonameFILENAME- Set shared library name
–hash-bucket-empty-fractionFRACTION- 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-iterationsCOUNT- 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-baseFILE- 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-patchPERCENT Amount of extra space to allocate for patches (default 10)-initSYMBOL -
- Call SYMBOL at load-time
-IPROGRAM,–dynamic-linkerPROGRAM- Set dynamic linker path
–just-symbolsFILE- Read only symbol values from FILE
–keep-files-mapped- Keep files mapped across passes (default)
–no-keep-files-mapped- Release mapped files after each pass
–keep-uniqueSYMBOL- Do not fold this symbol during ICF
-lLIBNAME,–libraryLIBNAME- 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
-LDIR,–library-pathDIR- 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)
-mEMULATION- Set GNU linker emulation; obsolete
–map-whole-files- Map whole files to memory (default)
–no-map-whole-files- Map relevant file parts to memory
–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
-MapMAPFILENAME- 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
-oFILE,–outputFILE- Set output file name
–oformat[binary]- Set output format
-OLEVEL,-optimizeLEVEL- Optimize output file size
–orphan-handling[place,discard,warn,error]- Orphan section handling
-p- Ignored for ARM compatibility
-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)
–pluginPLUGIN- Load a plugin library
–plugin-optOPTION- 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-countsFILENAME- 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-fileFILE- 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-gapOFFSET- Set offset between executable and read-only segments
-RDIR- Add DIR to runtime search path
-rpathDIR- Add DIR to runtime search path
–rpath-linkDIR- 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-fileFILENAME- Layout sections in the order specified
–section-startSECTION=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-tagsCOUNT- Dynamic tag slots to reserve (default 5)
–stub-group-sizeSIZE- (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-sizeSIZE- Stack size when
-fsplit-stackfunction 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
–sysrootDIR- 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-countCOUNT- Number of threads to use
–thread-count-initialCOUNT- Number of threads to use in initial pass
-
–thread-count-middleCOUNT Number of threads to use in middle pass–thread-count-finalCOUNT -
- 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
-TFILE,–scriptFILE- Read linker script
-TbssADDRESS- Set the address of the bss segment
-TdataADDRESS- Set the address of the data segment
-TtextADDRESS- Set the address of the text segment
-Ttext-segmentADDRESS- Set the address of the text segment
-Trodata-segmentADDRESS- Set the address of the rodata segment
-uSYMBOL,–undefinedSYMBOL- Create undefined reference to SYMBOL
–unresolved-symbolsignore-all,report-all,ignore-in-object-files,ignore-in-shared-libs- How to handle unresolved symbols
–verbose- Alias for
–debug=,files/ –version-scriptFILE- 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)
-zbuildd- 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)
–wrapSYMBOL- 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
-ySYMBOL,–trace-symbolSYMBOL- Trace references to symbol
–undefined-version- Allow unused version in script (default)
–no-undefined-version- Do not allow unused version in script
-YPATH- Default search path for Solaris compatibility
- -(,
–start-group - Start a library search group
- -),
–end-group - End a library search group
-zbndplt- (x86-64 only) Generate a BND PLT for Intel MPX
-znobndplt- Generate a regular PLT (default)
-zcombreloc- Sort dynamic relocs (default)
-znocombreloc- Do not sort dynamic relocs
-zcommon-page-size=SIZE- Set common page size to SIZE
-zdefs- Report undefined symbols (even with
–shared) -zexecstack- Mark output as requiring executable stack
-zglobal- Make symbols in DSO available for subsequently loaded objects
-zinitfirst- Mark DSO to be initialized first at runtime
-zinterpose- Mark object to interpose all DSOs but executable
-zunique- Mark DSO to be loaded at most once, and only in the main namespace
-znounique- Do not mark the DSO as one to be loaded only in the main namespace (default)
-zlazy- Mark object for lazy runtime binding (default)
-zloadfltr- Mark object requiring immediate process
-zmax-page-size=SIZE- Set maximum page size to SIZE
-zmuldefs- Allow multiple definitions of symbols
-znocopyreloc- Do not create copy relocs
-znodefaultlib- Mark object not to use default search paths
-znodelete- Mark DSO non-deletable at runtime
-znodlopen- Mark DSO not available to dlopen
-znodump- Mark DSO not available to dldump
-znoexecstack- Mark output as not requiring executable stack
-znow- Mark object for immediate function binding
-zorigin- Mark DSO to indicate that needs immediate $ORIGIN processing at runtime
-zrelro- Where possible mark variables read-only after relocation (default)
-znorelro- Don’t mark variables read-only after relocation
-zstack-size=SIZE- Set PT_GNU_STACK segment p_memsz to SIZE
-zstart-stop-visibility=[default,internal,hidden,protected]- ELF symbol visibility for synthesized __start_* and __stop_* symbols
-ztext- Do not permit relocations in read-only segments
-znotext- Permit relocations in read-only segments (default)
-ztextoff- Permit relocations in read-only segments (default)
-ztext-unlikely-segment- Move .text.unlikely sections to a separate segment.
-znotext-unlikely-segment- Do not move .text.unlikely sections to a separate segment. (default)
-
-zkeep-text-section-prefix Keep .text.hot, .text.startup, .text.exit and .text.unlikely as separate sections in the final binary.-znokeep-text-section-prefix -
- Merge all .text.* prefix sections. (default)
debian/tmp/usr/bin/ld.gold: supported targets: elf32-x86-64 elf32-x86-64-freebsd elf32-x86-64-nacl elf64-x86-64 elf64-x86-64-freebsd elf64-x86-64-nacl elf32-iamcu elf32-i386 elf32-i386-freebsd elf32-i386-nacl debian/tmp/usr/bin/ld.gold: supported emulations: elf32_x86_64 elf32_x86_64_nacl elf_x86_64 elf_x86_64_nacl elf_iamcu elf_i386 elf_i386_nacl
REPORTING BUGS
Report bugs to <https://sourceware.org/bugzilla/>
COPYRIGHT
Copyright © 2022 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.
