class TlsDescResolver

Defined at line 52 of file ../../sdk/lib/c/dlfcn/dl/test/../tls-desc-resolver.h

TlsDescResolver is a tiny, trivial object meant to be ephemeral. It can be

constructed directly in an rvalue argument to elfldltl::MakeSymbolResolver.

The constructor requires two arguments: the current threshold between static

TLS and dynamic TLS module IDs; and a reference to the TlsdescIndirectList

owned by the RuntimeModule being relocated.

The argument is the maximum TLS module ID handled by the

<lib

/ld/tlsdesc.h>

runtime for static TLS cases. The first dynamic PT_TLS module, stored in

_dl_tlsdesc_runtime_dynamic_blocks[0], has ID max_static_tls_modid + 1,

The TlsdescIndirectList only needs to be default-constructed, and then

eventually destroyed when the module's GOT is definitely no longer in use

(or never was). It will never be touched again after this module's

relocaton is complete; only elements' TlsdescIndirect contents will be read.

Public Methods

void TlsDescResolver (size_type max_static_tls_modid, TlsdescIndirectList & indirect_list)

Defined at line 56 of file ../../sdk/lib/c/dlfcn/dl/test/../tls-desc-resolver.h

template <auto& diag, auto& defn>
fit::result<bool, TlsDescGot> operator() (auto & diag, const auto & defn)

For defined TLS symbols, the base class handles the static TLS modules.

The dynamic TLS modules are handled in the Dynamic() method.

Defined at line 64 of file ../../sdk/lib/c/dlfcn/dl/test/../tls-desc-resolver.h