Renesas Synergy™

FAQ 1008183 : リンク時に gp シンボルの値を決定するときの規則は?

回答

たとえば、次のようなイメージのリンク・ディレクティブを書いたとします。

    DATA1 セグメント .data セクション          アドレス 0x100000
    DATA2 セグメント .sdata & .sbss セクション アドレス 0x200000
    DATA3 セグメント .bss セクション           アドレス 0x300000

さらに、gp シンボルのアドレスをシンボル・ディレクティブにて直接指定しなかった場合、 リンカが gp を自動設定することになります。

CA850 V2.20 以降では、

    ・先頭セグメント内の sdata / sbss セクション
    ・次セグメント内の sdata / sbss セクション
                    :
    ・先頭セグメント内の data / bss セクション
    ・次セグメント内の data / bss セクション

という順で gp の値を設定しています。


上記例では「DATA2セグメントの.sdata セクションの先頭 + 32 k バイト」に gp が設定されます。
詳細については、ユーザーズ・マニュアル リンク・ディレクティブ編の付録「リンク・ディレクティブ」の「シンボル」を参照してください。

 

適用製品

V850用コンパイラパッケージ [CA850]
他にご質問がございましたら、リクエストを送信してください