下表中列出的 TLS 重定位是针对 x64 定义的。此表中的说明使用以下表示法。
在 GOT 中分配两个连续项,以存储 TLS_index 结构。此结构将传递给 __tls_get_addr()。只能在确切的常规动态代码序列中使用此指令。
在 GOT 中分配两个连续项,以存储 TLS_index 结构。此结构将传递给 __tls_get_addr()。在运行时,将目标文件的 ti_offset 偏移字段设置为零,并初始化 ti_module 偏移。对 __tls_get_addr() 函数的调用将返回动态 TLS 块的起始偏移。只能在确切的代码序列中使用此指令。
计算变量相对于包含它的 TLS 块起始位置的偏移。计算所得的值将用作加数的立即值,并且不与特定寄存器关联。
计算包含 TLS 符号的目标文件的标识符。
在 GOT 中分配一项,以将变量偏移保存在初始 TLS 块中。此偏移相对于 TLS 块的结束位置 %fs:0。运算符只能与 movq 或 addq 指令一起使用。
计算变量相对于 TLS 块结束位置 %fs:0 的偏移。不创建任何 GOT 项。
名称 |
值 |
字段 |
计算 |
---|---|---|---|
R_AMD64_DPTMOD64 |
16 |
Word64 |
@dtpmod(s) |
R_AMD64_DTPOFF64 |
17 |
Word64 |
@dtpoff(s) |
R_AMD64_TPOFF64 |
18 |
Word64 |
@tpoff(s) |
R_AMD64_TLSGD |
19 |
Word32 |
@tlsgd(s) |
R_AMD64_TLSLD |
20 |
Word32 |
@tlsld(s) |
R_AMD64_DTPOFF32 |
21 |
Word32 |
@dtpoff(s) |
R_AMD64_GOTTPOFF |
22 |
Word32 |
@gottpoff(s) |
R_AMD64_TPOFF32 |
23 |
Word32 |
@gottpoff(s) |