template <typename GotEntry>
struct TlsDescGotLayout
Defined at line 527 of file ../../src/lib/elfldltl/include/lib/elfldltl/layout.h
When the compiler generates a TLSDESC callback, the linker generates a
single corresponding dynamic relocation entry that applies to a pair of
adjacent GOT slots. In DT_REL format, the addend is stored in the second
slot. The first slot holds a function pointer installed by the dynamic
linker. The compiler generates code to call this function pointer using a
bespoke calling convention specified in each psABI; it takes a single
argument of this address in the GOT. The second slot is filled by the
dynamic linker with whatever value is of use to the function it installs
such that it returns the thread pointer offset of the per-thread address
of the relocation's symbol plus addend. (For static TLS, that offset will
be the same in every thread. For dynamic TLS, it will be the difference
of unrelated pointers that recovers an uncorrelated per-thread address.)
Public Members
GotEntry function
GotEntry value