Line 1256... |
Line 1256... |
@kindex --no-copy-dt-needed-entries
|
@kindex --no-copy-dt-needed-entries
|
@item --copy-dt-needed-entries
|
@item --copy-dt-needed-entries
|
@itemx --no-copy-dt-needed-entries
|
@itemx --no-copy-dt-needed-entries
|
This option affects the treatment of dynamic libraries referred to
|
This option affects the treatment of dynamic libraries referred to
|
by DT_NEEDED tags @emph{inside} ELF dynamic libraries mentioned on the
|
by DT_NEEDED tags @emph{inside} ELF dynamic libraries mentioned on the
|
command line. Normally the linker will add a DT_NEEDED tag to the
|
command line. Normally the linker won't add a DT_NEEDED tag to the
|
output binary for each library mentioned in a DT_NEEDED tag in an
|
output binary for each library mentioned in a DT_NEEDED tag in an
|
input dynamic library. With @option{--no-copy-dt-needed-entries}
|
input dynamic library. With @option{--copy-dt-needed-entries}
|
specified on the command line however any dynamic libraries that
|
specified on the command line however any dynamic libraries that
|
follow it will have their DT_NEEDED entries ignored. The default
|
follow it will have their DT_NEEDED entries added. The default
|
behaviour can be restored with @option{--copy-dt-needed-entries}.
|
behaviour can be restored with @option{--no-copy-dt-needed-entries}.
|
|
|
This option also has an effect on the resolution of symbols in dynamic
|
This option also has an effect on the resolution of symbols in dynamic
|
libraries. With the default setting dynamic libraries mentioned on
|
libraries. With @option{--copy-dt-needed-entries} dynamic libraries
|
the command line will be recursively searched, following their
|
mentioned on the command line will be recursively searched, following
|
DT_NEEDED tags to other libraries, in order to resolve symbols
|
their DT_NEEDED tags to other libraries, in order to resolve symbols
|
required by the output binary. With
|
required by the output binary. With the default setting however
|
@option{--no-copy-dt-needed-entries} specified however the searching
|
the searching of dynamic libraries that follow it will stop with the
|
of dynamic libraries that follow it will stop with the dynamic
|
dynamic library itself. No DT_NEEDED links will be traversed to resolve
|
library itself. No DT_NEEDED links will be traversed to resolve
|
|
symbols.
|
symbols.
|
|
|
@cindex cross reference table
|
@cindex cross reference table
|
@kindex --cref
|
@kindex --cref
|
@item --cref
|
@item --cref
|
Line 1399... |
Line 1398... |
collection has been enabled via the @samp{--gc-sections}) option. The
|
collection has been enabled via the @samp{--gc-sections}) option. The
|
default behaviour (of not listing the sections that are removed) can
|
default behaviour (of not listing the sections that are removed) can
|
be restored by specifying @samp{--no-print-gc-sections} on the command
|
be restored by specifying @samp{--no-print-gc-sections} on the command
|
line.
|
line.
|
|
|
|
@kindex --print-output-format
|
|
@cindex output format
|
|
@item --print-output-format
|
|
Print the name of the default output format (perhaps influenced by
|
|
other command-line options). This is the string that would appear
|
|
in an @code{OUTPUT_FORMAT} linker script command (@pxref{File Commands}).
|
|
|
@cindex help
|
@cindex help
|
@cindex usage
|
@cindex usage
|
@kindex --help
|
@kindex --help
|
@item --help
|
@item --help
|
Print a summary of the command-line options on the standard output and exit.
|
Print a summary of the command-line options on the standard output and exit.
|
Line 2067... |
Line 2073... |
@kindex --eh-frame-hdr
|
@kindex --eh-frame-hdr
|
@item --eh-frame-hdr
|
@item --eh-frame-hdr
|
Request creation of @code{.eh_frame_hdr} section and ELF
|
Request creation of @code{.eh_frame_hdr} section and ELF
|
@code{PT_GNU_EH_FRAME} segment header.
|
@code{PT_GNU_EH_FRAME} segment header.
|
|
|
|
@kindex --ld-generated-unwind-info
|
|
@item --no-ld-generated-unwind-info
|
|
Request creation of @code{.eh_frame} unwind info for linker
|
|
generated code sections like PLT. This option is on by default
|
|
if linker generated unwind info is supported.
|
|
|
@kindex --enable-new-dtags
|
@kindex --enable-new-dtags
|
@kindex --disable-new-dtags
|
@kindex --disable-new-dtags
|
@item --enable-new-dtags
|
@item --enable-new-dtags
|
@itemx --disable-new-dtags
|
@itemx --disable-new-dtags
|
This linker can create the new dynamic tags in ELF. But the older ELF
|
This linker can create the new dynamic tags in ELF. But the older ELF
|
Line 3851... |
Line 3863... |
needs to be at a particular location in memory. For example:
|
needs to be at a particular location in memory. For example:
|
@smallexample
|
@smallexample
|
data.o(.data)
|
data.o(.data)
|
@end smallexample
|
@end smallexample
|
|
|
|
To refine the sections that are included based on the section flags
|
|
of an input section, INPUT_SECTION_FLAGS may be used.
|
|
|
|
Here is a simple example for using Section header flags for ELF sections:
|
|
|
|
@smallexample
|
|
@group
|
|
SECTIONS @{
|
|
.text : @{ INPUT_SECTION_FLAGS (SHF_MERGE & SHF_STRINGS) *(.text) @}
|
|
.text2 : @{ INPUT_SECTION_FLAGS (!SHF_WRITE) *(.text) @}
|
|
@}
|
|
@end group
|
|
@end smallexample
|
|
|
|
In this example, the output section @samp{.text} will be comprised of any
|
|
input section matching the name *(.text) whose section header flags
|
|
@code{SHF_MERGE} and @code{SHF_STRINGS} are set. The output section
|
|
@samp{.text2} will be comprised of any input section matching the name *(.text)
|
|
whose section header flag @code{SHF_WRITE} is clear.
|
|
|
You can also specify files within archives by writing a pattern
|
You can also specify files within archives by writing a pattern
|
matching the archive, a colon, then the pattern matching the file,
|
matching the archive, a colon, then the pattern matching the file,
|
with no whitespace around the colon.
|
with no whitespace around the colon.
|
|
|
@table @samp
|
@table @samp
|
Line 6286... |
Line 6318... |
first instruction of the sequence and a branch back to the subsequent
|
first instruction of the sequence and a branch back to the subsequent
|
instruction. The original instruction is then replaced with a branch to
|
instruction. The original instruction is then replaced with a branch to
|
the veneer. The extra cycles required to call and return from the veneer
|
the veneer. The extra cycles required to call and return from the veneer
|
are sufficient to avoid the erratum in both the scalar and vector cases.
|
are sufficient to avoid the erratum in both the scalar and vector cases.
|
|
|
|
@cindex ARM1176 erratum workaround
|
|
@kindex --fix-arm1176
|
|
@kindex --no-fix-arm1176
|
|
The @samp{--fix-arm1176} switch enables a link-time workaround for an erratum
|
|
in certain ARM1176 processors. The workaround is enabled by default if you
|
|
are targetting ARM v6 (excluding ARM v6T2) or earlier. It can be disabled
|
|
unconditionally by specifying @samp{--no-fix-arm1176}.
|
|
|
|
Further information is available in the ``ARM1176JZ-S and ARM1176JZF-S
|
|
Programmer Advice Notice'' available on the ARM documentaion website at:
|
|
http://infocenter.arm.com/.
|
|
|
@cindex NO_ENUM_SIZE_WARNING
|
@cindex NO_ENUM_SIZE_WARNING
|
@kindex --no-enum-size-warning
|
@kindex --no-enum-size-warning
|
The @option{--no-enum-size-warning} switch prevents the linker from
|
The @option{--no-enum-size-warning} switch prevents the linker from
|
warning when linking object files that specify incompatible EABI
|
warning when linking object files that specify incompatible EABI
|
enumeration size attributes. For example, with this switch enabled,
|
enumeration size attributes. For example, with this switch enabled,
|