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