[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: shared libraries for NetBSD/powerpc



>       -fpic  If supported for the target machines, generate  po-
>              sition-independent  code,  suitable  for  use  in a
>              shared library.
>
>       -fPIC  If supported for the target machine, emit position-
>              independent  code,  suitable  for  dynamic linking,
>              even if branches need large displacements.

これをみると branch の距離を重視していますが、powerpc の gcc の
場合、それはどちらも同じです。ちがうのは GOT へのアクセスのしかた
で、-fpic だと_GLOBAL_OFFSET_TABLE_一つですが、-fPIC だと各関数
ごとに GOT に相当するものを持つようです。
# 私が勘違いしていなければ。:-)

-fpic の場合、オフセットは 0〜32764 なので 8000個程度ですね。

ってことでまあ、何にリンクされるかわからない crt* は -fPIC の方が
安全かもしれない。libc.so の場合は libc.so で8000個使えるので -fpic
で問題ありません。

# うーん、なんか考えるのがめんどーになってきた。lib/csu は全部
# -fPIC にしちゃおうかな。200bytes しか違わないし。