链接程序和库指南

SPARC: 局部可执行 (Local Executable, LE)

此代码序列实现线程局部存储的访问模型中介绍的 LE 模型。

表 8–6 SPARC: 局部可执行的线程局部变量的访问代码

代码序列

初始重定位

符号

# %g7 - thread pointer



0x00 sethi %hix(@tpoff(x)), %o0

0x04 xor   %o0,%lo(@tpoff(x)),%o0

0x08 add   %g7, %o0, %o0

 

# %o0 - contains address of TLS variable
 

 

R_SPARC_TLS_LE_HIX22

R_SPARC_TLS_LE_LOX10

<none>
 

 

x

x

sethixor 指令分别生成 R_SPARC_TLS_LE_HIX22R_SPARC_TLS_LE_LOX10 重定位。链接编辑器将这些重定位直接绑定到在可执行文件中定义的符号的静态 TLS 偏移。在运行时不需要进行重定位处理。