リンカーとライブラリ

SPARC: 64 ビットの Initial Executable (IE)

このシーケンスは、ld 命令ではなく ldx 命令を使用して 64 ビットアドレスを読み込んでいる点を除き、SPARC 32 ビットシーケンスと同じです。

表 8–5 SPARC: 64 ビットの Initial Executable スレッド固有変数のアクセスコード

コードシーケンス 

初期の再配置 

シンボル 

# %l7 - GOT ポインタに初期化されている

0x00 sethi %hi(@tpoff(x)), %o0
0x04 or    %o0,%lo(@tpoff(x)),%o0
0x08 ldx   [%l7 + %o0], %o0
0x0c add   %g7, %o0, %o0
 
# %o0 - TLS 変数のアドレスが含まれる
 
 
R_SPARC_TLS_IE_HI22
R_SPARC_TLS_IE_LO10
R_SPARC_TLS_IE_LD
R_SPARC_TLS_IE_ADD
 
 
x
x
x
x
 

未処理の再配置 

シンボル 

GOT[n]
R_SPARC_TLS_TPOFF64
x