This is probably not something you need to know, but in case it ever is: References from References only in anywhere defining module +--------------------+---------------------+ Uses _tls_get_addr() | global-dynamic | local-dynamic | +--------------------+---------------------+ Uses data relocations | initial-exec | local-exec | +--------------------+---------------------+ global-dynamic: most general, safest, the default. local-dynamic: usable iff the TLV is defined in the same object as it is referenced (eg, file scope, or protected or hidden visibility). initial-exec: preallocated slots (finite) local-exec: intersection of initial-exec and local-dynamic