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