Document powerpc64 ld options

* ld.texi (PowerPC64 ELF64): Document --no-inline-optimize,
	--power10-stubs and --no-power10-stubs.
This commit is contained in:
Alan Modra
2020-07-10 16:58:49 +09:30
parent d3b10ee787
commit d882c98893
2 changed files with 32 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2020-07-10 Alan Modra <amodra@gmail.com>
* ld.texi (PowerPC64 ELF64): Document --no-inline-optimize,
--power10-stubs and --no-power10-stubs.
2020-07-10 Alan Modra <amodra@gmail.com> 2020-07-10 Alan Modra <amodra@gmail.com>
* emultempl/ppc64elf.em (params): Init new field. * emultempl/ppc64elf.em (params): Init new field.

View File

@ -7823,6 +7823,16 @@ reliably for compiler generated code, but may be incorrect if assembly
code is used to insert TOC entries. Use this option to disable the code is used to insert TOC entries. Use this option to disable the
optimization. optimization.
@cindex PowerPC64 inline PLT call optimization
@kindex --no-inline-optimize
@item --no-inline-optimize
PowerPC64 @command{ld} normally replaces inline PLT call sequences
marked with @code{R_PPC64_PLTSEQ}, @code{R_PPC64_PLTCALL},
@code{R_PPC64_PLT16_HA} and @code{R_PPC64_PLT16_LO_DS} relocations by
a number of @code{nop}s and a direct call when the function is defined
locally and can't be overridden by some other definition. This option
disables that optimization.
@cindex PowerPC64 multi-TOC @cindex PowerPC64 multi-TOC
@kindex --no-multi-toc @kindex --no-multi-toc
@item --no-multi-toc @item --no-multi-toc
@ -7904,6 +7914,23 @@ including system libraries, can cause a function that was localentry:0
to become localentry:8. This will result in a dynamic loader to become localentry:8. This will result in a dynamic loader
complaint and failure to run. The option is experimental, use with complaint and failure to run. The option is experimental, use with
care. @option{--no-plt-localentry} is the default. care. @option{--no-plt-localentry} is the default.
@cindex PowerPC64 Power10 stubs
@kindex --power10-stubs
@kindex --no-power10-stubs
@item --power10-stubs
@itemx --no-power10-stubs
When PowerPC64 @command{ld} links input object files containing
relocations used on power10 prefixed instructions it normally creates
linkage stubs (PLT call and long branch) using power10 instructions.
In particular for @code{@@notoc} PLT calls where @code{r2} is not
known the power10 stubs are smaller and faster, so are preferred for
power10. @option{--power10-stubs} and @option{--no-power10-stubs}
allow you to override the linker's selection of stub instructions.
For example, when linking a shared library that contains cpu-optimized
versions of functions for both power9 and power10, you might use
@option{--no-power10-stubs} so that power9 code making calls doesn't
attempt to execute power10 instructions.
@end table @end table
@ifclear GENERIC @ifclear GENERIC