.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.10. .TH GOLD "1" "July 2012" "gold (GNU Binutils for Debian 2.22) 1.11" "User Commands" .SH NAME gold \- The GNU ELF linker .SH SYNOPSIS .B ld.gold [\fIoptions\fR] \fIfile\fR... .SH OPTIONS .TP \fB\-\-help\fR Report usage information .TP \fB\-v\fR, \fB\-\-version\fR Report version information .TP \fB\-V\fR Report version and target information .TP \fB\-\-add\-needed\fR Not supported .TP \fB\-\-no\-add\-needed\fR Do not copy DT_NEEDED tags from shared libraries .HP \fB\-\-allow\-multiple\-definition\fR Allow multiple definitions of symbols .TP \fB\-\-no\-allow\-multiple\-definition\fR Do not allow multiple definitions .TP \fB\-\-allow\-shlib\-undefined\fR Allow unresolved references in shared libraries .TP \fB\-\-no\-allow\-shlib\-undefined\fR Do not allow unresolved references in shared libraries .TP \fB\-\-as\-needed\fR Only set DT_NEEDED for shared libraries if used .TP \fB\-\-no\-as\-needed\fR Always DT_NEEDED for shared libraries .TP \fB\-assert\fR [ignored] Ignored .TP \fB\-b\fR [elf,binary], \fB\-\-format\fR [elf,binary] Set input format .HP \fB\-Bdynamic\fR \fB\-l\fR searches for shared libraries .HP \fB\-Bstatic\fR \fB\-l\fR does not search for shared libraries .TP \fB\-dy\fR alias for \fB\-Bdynamic\fR .TP \fB\-dn\fR alias for \fB\-Bstatic\fR .TP \fB\-Bgroup\fR Use group name lookup rules for shared library .TP \fB\-Bsymbolic\fR Bind defined symbols locally .TP \fB\-Bsymbolic\-functions\fR Bind defined function symbols locally .TP \fB\-\-build\-id\fR [=STYLE] Generate build ID note .TP \fB\-\-check\-sections\fR Check segment addresses for overlaps (default) .TP \fB\-\-no\-check\-sections\fR Do not check segment addresses for overlaps .TP \fB\-\-compress\-debug\-sections\fR [none,zlib] Compress .debug_* sections in the output file .TP \fB\-\-copy\-dt\-needed\-entries\fR Not supported .HP \fB\-\-no\-copy\-dt\-needed\-entries\fR Do not copy DT_NEEDED tags from shared libraries .TP \fB\-\-cref\fR Output cross reference table .TP \fB\-\-no\-cref\fR Do not output cross reference table .TP \fB\-\-ctors\-in\-init\-array\fR Use DT_INIT_ARRAY for all constructors (default) .TP \fB\-\-no\-ctors\-in\-init\-array\fR Handle constructors as directed by compiler .TP \fB\-d\fR, \fB\-\-define\-common\fR Define common symbols .TP \fB\-\-no\-define\-common\fR Do not define common symbols .TP \fB\-dc\fR Alias for \fB\-d\fR .TP \fB\-dp\fR Alias for \fB\-d\fR .TP \fB\-\-debug\fR [all,files,script,task][,...] Turn on debugging .TP \fB\-\-defsym\fR SYMBOL=EXPRESSION Define a symbol .TP \fB\-\-demangle\fR [=STYLE] Demangle C++ symbols in log messages .TP \fB\-\-no\-demangle\fR Do not demangle C++ symbols in log messages .TP \fB\-\-detect\-odr\-violations\fR Look for violations of the C++ One Definition Rule .TP \fB\-\-no\-detect\-odr\-violations\fR Do not look for violations of the C++ One Definition Rule .TP \fB\-x\fR, \fB\-\-discard\-all\fR Delete all local symbols .TP \fB\-X\fR, \fB\-\-discard\-locals\fR Delete all temporary local symbols .TP \fB\-\-dynamic\-list\-data\fR Add data symbols to dynamic symbols .TP \fB\-\-dynamic\-list\-cpp\-new\fR Add C++ operator new/delete to dynamic symbols .HP \fB\-\-dynamic\-list\-cpp\-typeinfo\fR Add C++ typeinfo to dynamic symbols .TP \fB\-\-dynamic\-list\fR FILE Read a list of dynamic symbols .HP \fB\-e\fR ADDRESS, \fB\-\-entry\fR ADDRESS Set program start address .TP \fB\-\-exclude\-libs\fR lib,lib ... Exclude libraries from automatic export .TP \fB\-E\fR, \fB\-\-export\-dynamic\fR Export all dynamic symbols .TP \fB\-\-no\-export\-dynamic\fR Do not export all dynamic symbols (default) .TP \fB\-EB\fR Link big\-endian objects. .TP \fB\-EL\fR Link little\-endian objects. .TP \fB\-\-eh\-frame\-hdr\fR Create exception frame header .TP \fB\-\-no\-enum\-size\-warning\fR (ARM only) Do not warn about objects with incompatible enum sizes .HP \fB\-f\fR SHLIB, \fB\-\-auxiliary\fR SHLIB Auxiliary filter for shared object symbol table .TP \fB\-F\fR SHLIB, \fB\-\-filter\fR SHLIB Filter for shared object symbol table .TP \fB\-\-fatal\-warnings\fR Treat warnings as errors .TP \fB\-\-no\-fatal\-warnings\fR Do not treat warnings as errors .TP \fB\-fini\fR SYMBOL Call SYMBOL at unload\-time .TP \fB\-\-fix\-cortex\-a8\fR (ARM only) Fix binaries for Cortex\-A8 erratum. .TP \fB\-\-no\-fix\-cortex\-a8\fR (ARM only) Do not fix binaries for Cortex\-A8 erratum. .TP \fB\-\-fix\-arm1176\fR (ARM only) Fix binaries for ARM1176 erratum. .TP \fB\-\-no\-fix\-arm1176\fR (ARM only) Do not fix binaries for ARM1176 erratum. .TP \fB\-\-merge\-exidx\-entries\fR (ARM only) Merge exidx entries in debuginfo. .TP \fB\-\-no\-merge\-exidx\-entries\fR (ARM only) Do not merge exidx entries in debuginfo. .TP \fB\-\-fix\-v4bx\fR (ARM only) Rewrite BX rn as MOV pc, rn for ARMv4 .TP \fB\-\-fix\-v4bx\-interworking\fR (ARM only) Rewrite BX rn branch to ARMv4 interworking veneer .TP \fB\-g\fR Ignored .TP \fB\-\-gnu\-unique\fR Enable STB_GNU_UNIQUE symbol binding (default) .TP \fB\-\-no\-gnu\-unique\fR Disable STB_GNU_UNIQUE symbol binding .TP \fB\-h\fR FILENAME, \fB\-soname\fR FILENAME Set shared library name .TP \fB\-\-hash\-bucket\-empty\-fraction\fR FRACTION Min fraction of empty buckets in dynamic hash .TP \fB\-\-hash\-style\fR [sysv,gnu,both] Dynamic hash style .TP \fB\-I\fR PROGRAM, \fB\-\-dynamic\-linker\fR PROGRAM Set dynamic linker path .TP \fB\-\-incremental\fR Do an incremental link if possible; otherwise, do a full link and prepare output for incremental linking .TP \fB\-\-no\-incremental\fR Do a full link (default) .TP \fB\-\-incremental\-full\fR Do a full link and prepare output for incremental linking .TP \fB\-\-incremental\-update\fR Do an incremental link; exit if not possible .TP \fB\-\-incremental\-base\fR FILE Set base file for incremental linking (default is output file) .TP \fB\-\-incremental\-changed\fR Assume files changed .TP \fB\-\-incremental\-unchanged\fR Assume files didn't change .TP \fB\-\-incremental\-unknown\fR Use timestamps to check files (default) .TP \fB\-\-incremental\-startup\-unchanged\fR Assume startup files unchanged (files preceding this option) .HP \fB\-\-incremental\-patch\fR PERCENT Amount of extra space to allocate for patches .TP \fB\-init\fR SYMBOL Call SYMBOL at load\-time .TP \fB\-\-just\-symbols\fR FILE Read only symbol values from FILE .TP \fB\-\-map\-whole\-files\fR Map whole files to memory (default on 64\-bit hosts) .TP \fB\-\-no\-map\-whole\-files\fR Map relevant file parts to memory (default on 32\-bit hosts) .TP \fB\-\-keep\-files\-mapped\fR Keep files mapped across passes (default) .TP \fB\-\-no\-keep\-files\-mapped\fR Release mapped files after each pass .TP \fB\-\-ld\-generated\-unwind\-info\fR Generate unwind information for PLT (default) .TP \fB\-\-no\-ld\-generated\-unwind\-info\fR Do not generate unwind information for PLT .TP \fB\-l\fR LIBNAME, \fB\-\-library\fR LIBNAME Search for library LIBNAME .TP \fB\-L\fR DIR, \fB\-\-library\-path\fR DIR Add directory to search path .TP \fB\-nostdlib\fR Only search directories specified on the command line. .TP \fB\-\-rosegment\fR Put read\-only non\-executable sections in their own segment .TP \fB\-m\fR EMULATION Set GNU linker emulation; obsolete .TP \fB\-M\fR, \fB\-\-print\-map\fR Write map file on standard output .TP \fB\-Map\fR MAPFILENAME Write map file .TP \fB\-n\fR, \fB\-\-nmagic\fR Do not page align data .TP \fB\-N\fR, \fB\-\-omagic\fR Do not page align data, do not make text readonly .TP \fB\-\-no\-omagic\fR Page align data, make text readonly .TP \fB\-\-enable\-new\-dtags\fR Enable use of DT_RUNPATH and DT_FLAGS .TP \fB\-\-disable\-new\-dtags\fR Disable use of DT_RUNPATH and DT_FLAGS .TP \fB\-\-noinhibit\-exec\fR Create an output file even if errors occur .TP \fB\-\-no\-undefined\fR Report undefined symbols (even with \fB\-\-shared\fR) .TP \fB\-o\fR FILE, \fB\-\-output\fR FILE Set output file name .TP \fB\-O\fR LEVEL, \fB\-optimize\fR LEVEL Optimize output file size .TP \fB\-\-oformat\fR [binary] Set output format .TP \fB\-p\fR (ARM only) Ignore for backward compatibility .TP \fB\-pie\fR Create a position independent executable .TP \fB\-\-pic\-executable\fR Create a position independent executable .TP \fB\-no\-pipeline\-knowledge\fR (ARM only) Ignore for backward compatibility .TP \fB\-\-plugin\fR PLUGIN Load a plugin library .TP \fB\-\-plugin\-opt\fR OPTION Pass an option to the plugin .TP \fB\-\-preread\-archive\-symbols\fR Preread archive symbols when multi\-threaded .TP \fB\-\-print\-output\-format\fR Print default output format .TP \fB\-\-print\-symbol\-counts\fR FILENAME Print symbols defined and used for each input .TP \fB\-Qy\fR Ignored for SVR4 compatibility .TP \fB\-q\fR, \fB\-\-emit\-relocs\fR Generate relocations in output .TP \fB\-r\fR, \fB\-relocatable\fR Generate relocatable output .TP \fB\-i\fR Synonym for \fB\-r\fR .TP \fB\-\-relax\fR Relax branches on certain targets .TP \fB\-\-retain\-symbols\-file\fR FILE keep only symbols listed in this file .TP \fB\-R\fR DIR Add DIR to runtime search path .TP \fB\-rpath\fR DIR Add DIR to runtime search path .TP \fB\-\-rpath\-link\fR DIR Add DIR to link time shared library search path .TP \fB\-\-section\-ordering\-file\fR FILENAME Layout sections in the order specified. .TP \fB\-\-section\-start\fR SECTION=ADDRESS Set address of section .TP \fB\-\-sort\-common\fR [={ascending,descending}] Sort common symbols by alignment .TP \fB\-\-spare\-dynamic\-tags\fR COUNT Dynamic tag slots to reserve (default 5) .TP \fB\-s\fR, \fB\-\-strip\-all\fR Strip all symbols .TP \fB\-S\fR, \fB\-\-strip\-debug\fR Strip debugging information .TP \fB\-\-strip\-debug\-non\-line\fR Emit only debug line number information .TP \fB\-\-strip\-debug\-gdb\fR Strip debug symbols that are unused by gdb (at least versions <= 6.7) .TP \fB\-\-strip\-lto\-sections\fR Strip LTO intermediate code sections .TP \fB\-\-stub\-group\-size\fR SIZE (ARM 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 using default size. .TP \fB\-\-no\-keep\-memory\fR Use less memory and more disk I/O (included only for compatibility with GNU ld) .TP \fB\-G\fR, \fB\-shared\fR Generate shared library .TP \fB\-Bshareable\fR Generate shared library .TP \fB\-\-split\-stack\-adjust\-size\fR SIZE Stack size when \fB\-fsplit\-stack\fR function calls non\-split .TP \fB\-static\fR Do not link against shared libraries .TP \fB\-\-icf\fR [none,all,safe] Identical Code Folding. '\-\-icf=safe' Folds ctors, dtors and functions whose pointers are definitely not taken. .TP \fB\-\-icf\-iterations\fR COUNT Number of iterations of ICF (default 2) .TP \fB\-\-print\-icf\-sections\fR List folded identical sections on stderr .TP \fB\-\-no\-print\-icf\-sections\fR Do not list folded identical sections .TP \fB\-\-keep\-unique\fR SYMBOL Do not fold this symbol during ICF .TP \fB\-\-gc\-sections\fR Remove unused sections .TP \fB\-\-no\-gc\-sections\fR Don't remove unused sections (default) .TP \fB\-\-print\-gc\-sections\fR List removed unused sections on stderr .TP \fB\-\-no\-print\-gc\-sections\fR Do not list removed unused sections .TP \fB\-\-stats\fR Print resource usage statistics .TP \fB\-\-sysroot\fR DIR Set target system root directory .TP \fB\-t\fR, \fB\-\-trace\fR Print the name of each input file .TP \fB\-T\fR FILE, \fB\-\-script\fR FILE Read linker script .TP \fB\-\-threads\fR Run the linker multi\-threaded .TP \fB\-\-no\-threads\fR Do not run the linker multi\-threaded .TP \fB\-\-thread\-count\fR COUNT Number of threads to use .TP \fB\-\-thread\-count\-initial\fR COUNT Number of threads to use in initial pass .HP \fB\-\-thread\-count\-middle\fR COUNT Number of threads to use in middle pass .TP \fB\-\-thread\-count\-final\fR COUNT Number of threads to use in final pass .TP \fB\-Tbss\fR ADDRESS Set the address of the bss segment .TP \fB\-Tdata\fR ADDRESS Set the address of the data segment .TP \fB\-Ttext\fR ADDRESS Set the address of the text segment .TP \fB\-u\fR SYMBOL, \fB\-\-undefined\fR SYMBOL Create undefined reference to SYMBOL .TP \fB\-\-unresolved\-symbols\fR ignore\-all,report\-all,ignore\-in\-object\-files,ignore\-in\-shared\-libs How to handle unresolved symbols .TP \fB\-\-verbose\fR Synonym for \fB\-\-debug\fR=\fIfiles\fR .TP \fB\-\-version\-script\fR FILE Read version script .TP \fB\-\-warn\-common\fR Warn about duplicate common symbols .TP \fB\-\-no\-warn\-common\fR Do not warn about duplicate common symbols (default) .TP \fB\-\-warn\-constructors\fR Ignored .TP \fB\-\-no\-warn\-constructors\fR Ignored .TP \fB\-\-warn\-execstack\fR Warn if the stack is executable .TP \fB\-\-no\-warn\-execstack\fR Do not warn if the stack is executable (default) .TP \fB\-\-no\-warn\-mismatch\fR Don't warn about mismatched input files .TP \fB\-\-warn\-multiple\-gp\fR Ignored .TP \fB\-\-warn\-search\-mismatch\fR Warn when skipping an incompatible library .TP \fB\-\-no\-warn\-search\-mismatch\fR Don't warn when skipping an incompatible library .TP \fB\-\-warn\-shared\-textrel\fR Warn if text segment is not shareable .TP \fB\-\-no\-warn\-shared\-textrel\fR Do not warn if text segment is not shareable (default) .TP \fB\-\-warn\-unresolved\-symbols\fR Report unresolved symbols as warnings .TP \fB\-\-error\-unresolved\-symbols\fR Report unresolved symbols as errors .TP \fB\-\-no\-wchar\-size\-warning\fR (ARM only) Do not warn about objects with incompatible wchar_t sizes .TP \fB\-\-whole\-archive\fR Include all archive contents .TP \fB\-\-no\-whole\-archive\fR Include only needed archive contents .TP \fB\-\-wrap\fR SYMBOL Use wrapper functions for SYMBOL .TP \fB\-y\fR SYMBOL, \fB\-\-trace\-symbol\fR SYMBOL Trace references to symbol .TP \fB\-\-undefined\-version\fR Allow unused version in script (default) .TP \fB\-\-no\-undefined\-version\fR Do not allow unused version in script .TP \fB\-Y\fR PATH Default search path for Solaris compatibility .TP \-(, \fB\-\-start\-group\fR Start a library search group .TP \-), \fB\-\-end\-group\fR End a library search group .TP \fB\-\-start\-lib\fR Start a library .TP \fB\-\-end\-lib\fR End a library .TP \fB\-z\fR combreloc Sort dynamic relocs .TP \fB\-z\fR nocombreloc Do not sort dynamic relocs .TP \fB\-z\fR common\-page\-size=SIZE Set common page size to SIZE .TP \fB\-z\fR defs Report undefined symbols (even with \fB\-\-shared\fR) .TP \fB\-z\fR execstack Mark output as requiring executable stack .TP \fB\-z\fR initfirst Mark DSO to be initialized first at runtime .TP \fB\-z\fR interpose Mark object to interpose all DSOs but executable .TP \fB\-z\fR lazy Mark object for lazy runtime binding (default) .TP \fB\-z\fR loadfltr Mark object requiring immediate process .TP \fB\-z\fR max\-page\-size=SIZE Set maximum page size to SIZE .TP \fB\-z\fR muldefs Allow multiple definitions of symbols .TP \fB\-z\fR nocopyreloc Do not create copy relocs .TP \fB\-z\fR nodefaultlib Mark object not to use default search paths .TP \fB\-z\fR nodelete Mark DSO non\-deletable at runtime .TP \fB\-z\fR nodlopen Mark DSO not available to dlopen .TP \fB\-z\fR nodump Mark DSO not available to dldump .TP \fB\-z\fR noexecstack Mark output as not requiring executable stack .TP \fB\-z\fR now Mark object for immediate function binding .TP \fB\-z\fR origin Mark DSO to indicate that needs immediate $ORIGIN processing at runtime .TP \fB\-z\fR relro Where possible mark variables read\-only after relocation .TP \fB\-z\fR norelro Don't mark variables read\-only after relocation .TP \fB\-z\fR text Do not permit relocations in read\-only segments .TP \fB\-z\fR notext Permit relocations in read\-only segments (default) .TP \fB\-z\fR textoff Permit relocations in read\-only segments (default) .TP \fB\-z\fR buildd Dummy z option .PP ld.gold: supported targets: elf32\-bigarm elf32\-littlearm elf64\-powerpcle elf64\-powerpc elf32\-powerpcle elf32\-powerpc elf64\-sparc elf32\-sparc elf64\-x86\-64 elf64\-x86\-64\-freebsd elf32\-i386 elf32\-i386\-freebsd ld.gold: supported emulations: armelfb armelf elf64lppc elf64ppc elf32lppc elf32ppc elf64_sparc elf32_sparc elf_x86_64 elf_i386 .SH "REPORTING BUGS" Report bugs to .SH COPYRIGHT Copyright 2011 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. .SH "SEE ALSO" The full documentation for .B gold is maintained as a Texinfo manual. If the .B info and .B gold programs are properly installed at your site, the command .IP .B info gold .PP should give you access to the complete manual.