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