template <class Elf, elfldltl::ElfMachine Machine>
class StaticTlsDescResolver
Defined at line 286 of file ../../sdk/lib/ld/include/lib/ld/tlsdesc.h
This provides a callable object for resolving TLSDESC relocations. It can
be passed directly to elfldltl::MakeSymbolResolver (by reference).
The constructor requires an array of Elf::Addr indexed by the TlsdescRuntime
enum values (as from ld::RemoteAbiStub), and a load bias applied to those
addresses. Individual hooks can be replaced later with SetHook.
Public Methods
void StaticTlsDescResolver<Elf, Machine> (const RuntimeHooks & hooks, size_type bias)
Defined at line 294 of file ../../sdk/lib/ld/include/lib/ld/tlsdesc.h
void StaticTlsDescResolver<Elf, Machine> (const RuntimeHooks & hooks, size_type bias)
Defined at line 294 of file ../../sdk/lib/ld/include/lib/ld/tlsdesc.h
Addr GetHook (TlsdescRuntime hook)
Defined at line 300 of file ../../sdk/lib/ld/include/lib/ld/tlsdesc.h
void SetHook (TlsdescRuntime hook, size_type value)
Defined at line 302 of file ../../sdk/lib/ld/include/lib/ld/tlsdesc.h
TlsDescGot operator() (Addend addend)
Handle an undefined weak TLSDESC reference. There are two special runtime
resolvers for this case: one for zero addend, and one for nonzero addend.
Defined at line 308 of file ../../sdk/lib/ld/include/lib/ld/tlsdesc.h
template <auto& diag, auto& defn>
fit::result<bool, TlsDescGot> operator() (auto & diag, const auto & defn)
Handle a TLSDESC reference to a defined symbol. The runtime resolver just
loads the static TLS offset from the value slot. When the relocation is
applied the addend will be added to the value computed here from the
symbol's value and module's PT_TLS offset.
Defined at line 322 of file ../../sdk/lib/ld/include/lib/ld/tlsdesc.h