[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 しか違わないし。