diff options
Diffstat (limited to 'ld/ld.texi')
-rw-r--r-- | ld/ld.texi | 23 |
1 files changed, 16 insertions, 7 deletions
@@ -7595,18 +7595,27 @@ disable the optimization. @cindex PowerPC64 __tls_get_addr optimization @kindex --tls-get-addr-optimize @kindex --no-tls-get-addr-optimize +@kindex --tls-get-addr-regsave +@kindex --no-tls-get-addr-regsave @item --tls-get-addr-optimize @itemx --no-tls-get-addr-optimize -These options control whether PowerPC64 @command{ld} uses a special +These options control how PowerPC64 @command{ld} uses a special stub to call __tls_get_addr. PowerPC64 glibc 2.22 and later support an optimization that allows the second and subsequent calls to @code{__tls_get_addr} for a given symbol to be resolved by the special -stub without calling in to glibc. By default the linker enables this -option when glibc advertises the availability of __tls_get_addr_opt. -Forcing this option on when using an older glibc won't do much besides -slow down your applications, but may be useful if linking an -application against an older glibc with the expectation that it will -normally be used on systems having a newer glibc. +stub without calling in to glibc. By default the linker enables +generation of the stub when glibc advertises the availability of +__tls_get_addr_opt. +Using @option{--tls-get-addr-optimize} with an older glibc won't do +much besides slow down your applications, but may be useful if linking +an application against an older glibc with the expectation that it +will normally be used on systems having a newer glibc. +@option{--tls-get-addr-regsave} forces generation of a stub that saves +and restores volatile registers around the call into glibc. Normally, +this is done when the linker detects a call to __tls_get_addr_desc. +Such calls then go via the register saving stub to __tls_get_addr_opt. +@option {--no-tls-get-addr-regsave} disables generation of the +register saves. @cindex PowerPC64 OPD optimization @kindex --no-opd-optimize |