summaryrefslogtreecommitdiff
path: root/share/man/man1/aarch64-linux-android-ld.1
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/man1/aarch64-linux-android-ld.1')
-rw-r--r--share/man/man1/aarch64-linux-android-ld.1120
1 files changed, 77 insertions, 43 deletions
diff --git a/share/man/man1/aarch64-linux-android-ld.1 b/share/man/man1/aarch64-linux-android-ld.1
index 2899745..e005735 100644
--- a/share/man/man1/aarch64-linux-android-ld.1
+++ b/share/man/man1/aarch64-linux-android-ld.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
+.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -38,6 +38,8 @@
. ds PI \(*p
. ds L" ``
. ds R" ''
+. ds C`
+. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
@@ -48,17 +50,24 @@
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
..
-. nr % 0
-. rr F
-.\}
-.el \{\
-. de IX
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
.\}
+.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
@@ -124,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "LD 1"
-.TH LD 1 "2014-09-12" "binutils-2.23.52.0.2" "GNU Development Tools"
+.TH LD 1 "2014-08-29" "binutils-2.24.0" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -335,7 +344,7 @@ You can also define the input format from a script, using the command
.IP "\fB\-\-mri\-script=\fR\fIMRI-commandfile\fR" 4
.IX Item "--mri-script=MRI-commandfile"
.PD
-For compatibility with linkers produced by \s-1MRI\s0, \fBld\fR accepts script
+For compatibility with linkers produced by \s-1MRI, \s0\fBld\fR accepts script
files written in an alternate, restricted command language, described in
the \s-1MRI\s0 Compatible Script Files section of \s-1GNU\s0 ld documentation.
Introduce \s-1MRI\s0 script files with
@@ -385,7 +394,7 @@ Specifies a list of archive libraries from which symbols should not be automatic
exported. The library names may be delimited by commas or colons. Specifying
\&\f(CW\*(C`\-\-exclude\-libs ALL\*(C'\fR excludes symbols in all archive libraries from
automatic export. This option is available only for the i386 \s-1PE\s0 targeted
-port of the linker and for \s-1ELF\s0 targeted ports. For i386 \s-1PE\s0, symbols
+port of the linker and for \s-1ELF\s0 targeted ports. For i386 \s-1PE,\s0 symbols
explicitly listed in a .def file are still exported, regardless of this
option. For \s-1ELF\s0 targeted ports, symbols affected by this option will
be treated as hidden.
@@ -505,7 +514,7 @@ Ignored. Provided for compatibility with other tools.
.PD
Set the maximum size of objects to be optimized using the \s-1GP\s0 register to
\&\fIsize\fR. This is only meaningful for object file formats such as
-\&\s-1MIPS\s0 \s-1ECOFF\s0 which supports putting large and small objects into different
+\&\s-1MIPS ELF\s0 that support putting large and small objects into different
sections. This is ignored for other object file formats.
.IP "\fB\-h\fR \fIname\fR" 4
.IX Item "-h name"
@@ -561,7 +570,7 @@ archives multiple times.
You may list the same archive multiple times on the command line.
.Sp
This type of archive searching is standard for Unix linkers. However,
-if you are using \fBld\fR on \s-1AIX\s0, note that it is different from the
+if you are using \fBld\fR on \s-1AIX,\s0 note that it is different from the
behaviour of the \s-1AIX\s0 linker.
.IP "\fB\-L\fR \fIsearchdir\fR" 4
.IX Item "-L searchdir"
@@ -934,7 +943,7 @@ Marks the object can not be dumped by \f(CW\*(C`dldump\*(C'\fR.
Marks the object as not requiring executable stack.
.IP "\fBnorelro\fR" 4
.IX Item "norelro"
-Don't create an \s-1ELF\s0 \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment header in the object.
+Don't create an \s-1ELF \s0\f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment header in the object.
.IP "\fBnow\fR" 4
.IX Item "now"
When generating an executable or shared library, mark it to tell the
@@ -947,11 +956,7 @@ first called.
Marks the object may contain \f(CW$ORIGIN\fR.
.IP "\fBrelro\fR" 4
.IX Item "relro"
-Create an \s-1ELF\s0 \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment header in the object.
-.IP "\fBnosecondary\fR" 4
-.IX Item "nosecondary"
-Convert secondary symbols to weak symbols when generating a shared
-library.
+Create an \s-1ELF \s0\f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment header in the object.
.IP "\fBmax\-page\-size=\fR\fIvalue\fR" 4
.IX Item "max-page-size=value"
Set the emulation maximum page size to \fIvalue\fR.
@@ -960,7 +965,7 @@ Set the emulation maximum page size to \fIvalue\fR.
Set the emulation common page size to \fIvalue\fR.
.IP "\fBstack\-size=\fR\fIvalue\fR" 4
.IX Item "stack-size=value"
-Specify a stack size for in an \s-1ELF\s0 \f(CW\*(C`PT_GNU_STACK\*(C'\fR segment.
+Specify a stack size for in an \s-1ELF \s0\f(CW\*(C`PT_GNU_STACK\*(C'\fR segment.
Specifying zero will override any default non-zero sized
\&\f(CW\*(C`PT_GNU_STACK\*(C'\fR segment creation.
.RE
@@ -1008,7 +1013,7 @@ restore the old behaviour.
.IP "\fB\-\-no\-as\-needed\fR" 4
.IX Item "--no-as-needed"
.PD
-This option affects \s-1ELF\s0 \s-1DT_NEEDED\s0 tags for dynamic libraries mentioned
+This option affects \s-1ELF DT_NEEDED\s0 tags for dynamic libraries mentioned
on the command line after the \fB\-\-as\-needed\fR option. Normally
the linker will add a \s-1DT_NEEDED\s0 tag for each dynamic library mentioned
on the command line, regardless of whether the library is actually
@@ -1158,7 +1163,9 @@ The format of the table is intentionally simple, so that it may be
easily processed by a script if necessary. The symbols are printed out,
sorted by name. For each symbol, a list of file names is given. If the
symbol is defined, the first file listed is the location of the
-definition. The remaining files contain references to the symbol.
+definition. If the symbol is defined as a common value then any files
+where this happens appear next. Finally any files that reference the
+symbol are listed.
.IP "\fB\-\-no\-define\-common\fR" 4
.IX Item "--no-define-common"
This option inhibits the assignment of addresses to common symbols.
@@ -1333,7 +1340,7 @@ A shared library specified at link time may not be the same as the one
that is available at load time, so the symbol might actually be
resolvable at load time.
.IP "\(bu" 4
-There are some operating systems, eg BeOS and \s-1HPPA\s0, where undefined
+There are some operating systems, eg BeOS and \s-1HPPA,\s0 where undefined
symbols in shared libraries are normal.
.Sp
The BeOS kernel for example patches shared libraries at load time to
@@ -1542,7 +1549,7 @@ warning and continue with the link.
.IP "\fB\-Bshareable\fR" 4
.IX Item "-Bshareable"
.PD
-Create a shared library. This is currently only supported on \s-1ELF\s0, \s-1XCOFF\s0
+Create a shared library. This is currently only supported on \s-1ELF, XCOFF\s0
and SunOS platforms. On SunOS, the linker will automatically create a
shared library if the \fB\-e\fR option is not used and there are
undefined symbols in the link.
@@ -1778,7 +1785,7 @@ encountered in a different order.
.IP "\fB\-\-warn\-constructors\fR" 4
.IX Item "--warn-constructors"
Warn if any global constructors are used. This is only useful for a few
-object file formats. For formats like \s-1COFF\s0 or \s-1ELF\s0, the linker can not
+object file formats. For formats like \s-1COFF\s0 or \s-1ELF,\s0 the linker can not
detect the use of global constructors.
.IP "\fB\-\-warn\-multiple\-gp\fR" 4
.IX Item "--warn-multiple-gp"
@@ -1868,12 +1875,12 @@ file as \f(CW\*(C`_\|_wrap_malloc\*(C'\fR; if you do, the assembler may resolve
call before the linker has a chance to wrap it to \f(CW\*(C`malloc\*(C'\fR.
.IP "\fB\-\-eh\-frame\-hdr\fR" 4
.IX Item "--eh-frame-hdr"
-Request creation of \f(CW\*(C`.eh_frame_hdr\*(C'\fR section and \s-1ELF\s0
-\&\f(CW\*(C`PT_GNU_EH_FRAME\*(C'\fR segment header.
+Request creation of \f(CW\*(C`.eh_frame_hdr\*(C'\fR section and \s-1ELF
+\&\s0\f(CW\*(C`PT_GNU_EH_FRAME\*(C'\fR segment header.
.IP "\fB\-\-no\-ld\-generated\-unwind\-info\fR" 4
.IX Item "--no-ld-generated-unwind-info"
Request creation of \f(CW\*(C`.eh_frame\*(C'\fR unwind info for linker
-generated code sections like \s-1PLT\s0. This option is on by default
+generated code sections like \s-1PLT. \s0 This option is on by default
if linker generated unwind info is supported.
.IP "\fB\-\-enable\-new\-dtags\fR" 4
.IX Item "--enable-new-dtags"
@@ -1881,7 +1888,7 @@ if linker generated unwind info is supported.
.IP "\fB\-\-disable\-new\-dtags\fR" 4
.IX Item "--disable-new-dtags"
.PD
-This linker can create the new dynamic tags in \s-1ELF\s0. But the older \s-1ELF\s0
+This linker can create the new dynamic tags in \s-1ELF.\s0 But the older \s-1ELF\s0
systems may not understand them. If you specify
\&\fB\-\-enable\-new\-dtags\fR, the new dynamic tags will be created as needed
and older dynamic tags will be omitted.
@@ -1898,9 +1905,9 @@ value can reduce the memory requirements at the expense of speed.
.IP "\fB\-\-hash\-style=\fR\fIstyle\fR" 4
.IX Item "--hash-style=style"
Set the type of linker's hash table(s). \fIstyle\fR can be either
-\&\f(CW\*(C`sysv\*(C'\fR for classic \s-1ELF\s0 \f(CW\*(C`.hash\*(C'\fR section, \f(CW\*(C`gnu\*(C'\fR for
-new style \s-1GNU\s0 \f(CW\*(C`.gnu.hash\*(C'\fR section or \f(CW\*(C`both\*(C'\fR for both
-the classic \s-1ELF\s0 \f(CW\*(C`.hash\*(C'\fR and new style \s-1GNU\s0 \f(CW\*(C`.gnu.hash\*(C'\fR
+\&\f(CW\*(C`sysv\*(C'\fR for classic \s-1ELF \s0\f(CW\*(C`.hash\*(C'\fR section, \f(CW\*(C`gnu\*(C'\fR for
+new style \s-1GNU \s0\f(CW\*(C`.gnu.hash\*(C'\fR section or \f(CW\*(C`both\*(C'\fR for both
+the classic \s-1ELF \s0\f(CW\*(C`.hash\*(C'\fR and new style \s-1GNU \s0\f(CW\*(C`.gnu.hash\*(C'\fR
hash tables. The default is \f(CW\*(C`sysv\*(C'\fR.
.IP "\fB\-\-reduce\-memory\-overheads\fR" 4
.IX Item "--reduce-memory-overheads"
@@ -2028,7 +2035,7 @@ disable/enable the default underscore symbol-prefix.
.IP "\fB\-\-export\-all\-symbols\fR" 4
.IX Item "--export-all-symbols"
If given, all global symbols in the objects used to build a \s-1DLL\s0 will
-be exported by the \s-1DLL\s0. Note that this is the default if there
+be exported by the \s-1DLL. \s0 Note that this is the default if there
otherwise wouldn't be any exported symbols. When symbols are
explicitly exported via \s-1DEF\s0 files or implicitly exported via function
attributes, the default is to not export anything else unless this
@@ -2072,7 +2079,7 @@ file offsets which are multiples of this number. This defaults to
.IX Item "--heap reserve,commit"
.PD
Specify the number of bytes of memory to reserve (and optionally commit)
-to be used as heap for this program. The default is 1Mb reserved, 4K
+to be used as heap for this program. The default is 1MB reserved, 4K
committed.
[This option is specific to the i386 \s-1PE\s0 targeted port of the linker]
.IP "\fB\-\-image\-base\fR \fIvalue\fR" 4
@@ -2095,7 +2102,14 @@ If given, the appropriate bit in the \*(L"Characteristics\*(R" field of the \s-1
header is set to indicate that this executable supports virtual addresses
greater than 2 gigabytes. This should be used in conjunction with the /3GB
or /USERVA=\fIvalue\fR megabytes switch in the \*(L"[operating systems]\*(R"
-section of the \s-1BOOT\s0.INI. Otherwise, this bit has no effect.
+section of the \s-1BOOT.INI. \s0 Otherwise, this bit has no effect.
+[This option is specific to \s-1PE\s0 targeted ports of the linker]
+.IP "\fB\-\-disable\-large\-address\-aware\fR" 4
+.IX Item "--disable-large-address-aware"
+Reverts the effect of a previous \fB\-\-large\-address\-aware\fR option.
+This is useful if \fB\-\-large\-address\-aware\fR is always set by the compiler
+driver (e.g. Cygwin gcc) and the executable does not support virtual
+addresses greater than 2 gigabytes.
[This option is specific to \s-1PE\s0 targeted ports of the linker]
.IP "\fB\-\-major\-image\-version\fR \fIvalue\fR" 4
.IX Item "--major-image-version value"
@@ -2142,7 +2156,7 @@ creation step.
.IX Item "--enable-auto-image-base"
Automatically choose the image base for DLLs, unless one is specified
using the \f(CW\*(C`\-\-image\-base\*(C'\fR argument. By using a hash generated
-from the dllname to create unique image bases for each \s-1DLL\s0, in-memory
+from the dllname to create unique image bases for each \s-1DLL,\s0 in-memory
collisions and relocations which can delay program execution are
avoided.
[This option is specific to the i386 \s-1PE\s0 targeted port of the linker]
@@ -2185,8 +2199,8 @@ documentation for ld's \f(CW\*(C`\-\-enable\-auto\-import\*(C'\fR for details."
This message occurs when some (sub)expression accesses an address
ultimately given by the sum of two constants (Win32 import tables only
allow one). Instances where this may occur include accesses to member
-fields of struct variables imported from a \s-1DLL\s0, as well as using a
-constant index into an array variable imported from a \s-1DLL\s0. Any
+fields of struct variables imported from a \s-1DLL,\s0 as well as using a
+constant index into an array variable imported from a \s-1DLL. \s0 Any
multiword variable (arrays, structs, long long, etc) may trigger
this error condition. However, regardless of the exact data type
of the offending exported variable, ld will always detect it, issue
@@ -2239,7 +2253,7 @@ A third method of dealing with this difficulty is to abandon
\&'auto\-import' for the offending symbol and mark it with
\&\f(CW\*(C`_\|_declspec(dllimport)\*(C'\fR. However, in practice that
requires using compile-time #defines to indicate whether you are
-building a \s-1DLL\s0, building client code that will link to the \s-1DLL\s0, or
+building a \s-1DLL,\s0 building client code that will link to the \s-1DLL,\s0 or
merely building/linking to a static library. In making the choice
between the various methods of resolving the 'direct address with
constant offset' problem, you should consider typical real-world usage:
@@ -2327,7 +2341,7 @@ addresses which are a multiple of this number. Defaults to 0x1000.
.IX Item "--stack reserve,commit"
.PD
Specify the number of bytes of memory to reserve (and optionally commit)
-to be used as stack for this program. The default is 2Mb reserved, 4K
+to be used as stack for this program. The default is 2MB reserved, 4K
committed.
[This option is specific to the i386 \s-1PE\s0 targeted port of the linker]
.IP "\fB\-\-subsystem\fR \fIwhich\fR" 4
@@ -2359,13 +2373,13 @@ Code integrity checks are enforced.
.IP "\fB\-\-nxcompat\fR" 4
.IX Item "--nxcompat"
The image is compatible with the Data Execution Prevention.
-This feature was introduced with \s-1MS\s0 Windows \s-1XP\s0 \s-1SP2\s0 for i386 \s-1PE\s0 targets.
+This feature was introduced with \s-1MS\s0 Windows \s-1XP SP2\s0 for i386 \s-1PE\s0 targets.
.IP "\fB\-\-no\-isolation\fR" 4
.IX Item "--no-isolation"
Although the image understands isolation, do not isolate the image.
.IP "\fB\-\-no\-seh\fR" 4
.IX Item "--no-seh"
-The image does not use \s-1SEH\s0. No \s-1SE\s0 handler may be called from
+The image does not use \s-1SEH.\s0 No \s-1SE\s0 handler may be called from
this image.
.IP "\fB\-\-no\-bind\fR" 4
.IX Item "--no-bind"
@@ -2376,6 +2390,11 @@ The driver uses the \s-1MS\s0 Windows Driver Model.
.IP "\fB\-\-tsaware\fR" 4
.IX Item "--tsaware"
The image is Terminal Server aware.
+.IP "\fB\-\-insert\-timestamp\fR" 4
+.IX Item "--insert-timestamp"
+Insert a real timestamp into the image, rather than the default value
+of zero. This will result in a slightly different results with each
+invocation, which could be helpful for distributing unique images.
.PP
The C6X uClinux target uses a binary format called \s-1DSBT\s0 to support shared
libraries. Each shared library in the system needs to have a unique index;
@@ -2417,6 +2436,21 @@ This option tells the linker which \s-1GOT\s0 generation scheme to use.
\&\fItype\fR should be one of \fBsingle\fR, \fBnegative\fR,
\&\fBmultigot\fR or \fBtarget\fR. For more information refer to the
Info entry for \fIld\fR.
+.PP
+The following options are supported to control microMIPS instruction
+generation when linking for \s-1MIPS\s0 targets.
+.IP "\fB\-\-insn32\fR" 4
+.IX Item "--insn32"
+.PD 0
+.IP "\fB\-\-no\-insn32\fR" 4
+.IX Item "--no-insn32"
+.PD
+These options control the choice of microMIPS instructions used in code
+generated by the linker, such as that in the \s-1PLT\s0 or lazy binding stubs,
+or in relaxation. If \fB\-\-insn32\fR is used, then the linker only uses
+32\-bit instruction encodings. By default or if \fB\-\-no\-insn32\fR is
+used, all instruction encodings are used, including 16\-bit ones where
+possible.
.SH "ENVIRONMENT"
.IX Header "ENVIRONMENT"
You can change the behaviour of \fBld\fR with the environment variables