Next: , Previous: References, Up: Platform quirks


13.3.2 コンパイラ

libtoolに影響するコンパイラの特徴は,PICオブジェクトを生成するための (存在する場合は)必要なフラグのみです.一般的に,Cコンパイラが特定のPIC フラグをサポートする場合,あらゆる派生的なコンパイラは同じフラグをサポー トします.この規則に対し,注目すべき若干の例外があるまでは,このセクショ ンではCコンパイラのみを説明します.

プラットフォームに関係なく,以下のCコンパイラは,標準のコマンドライオ プションがあります.

gcc
これはGNU Cコンパイラで,多くのフリーオペレーティングシステム(少し例を あげると,FreeBSD,GNU/Hurd,GNU/Linux,Lites,NetBSD,そしてOpenBSDで す) に対する,システムコンパイラでもあります.

-fpic’や‘-fPIC’フラグは,位置に依存しないコードを生成するた めに使用可能です.‘-fPIC’は動作するコードを生成することを保証しま すが,m68k,m88k,そしてSparcチップ上ではコードは遅くなります.しかし, これらのチップで‘-fpic’を使用すると,共有ライブラリでの自由なサイ ズが強制的に制限されます.

このサブセクションの残りは,バンドルされているオペレーティングシステム のコンパイラをリストアップします.

aix3*
aix4*
(IA-64のAIX以外)AIXはPowerPCとRS/6000チップに移植されているので,ほと んどのAIXコンパイラにはPICフラグがありません.1
hpux10*
PICを生成するために‘+Z’を使用してください.
osf3*
Digital/UNIX 3.xは,少なくともPowerPCプラットフォームでなければ,PICフ ラグはありません.
solaris2*
PICを生成するために‘-KPIC’を使用してください.
sunos4*
PICを生成するために‘-PIC’を使用してください.

脚注

[1] PowerPCと RS/6000チップ(powerpc-*-*powerpcle-*-*,そして rs6000-*-*)に対しコンパイルされているすべてのコードは,オペレー ティングシステムやコンパイラスイートに関係なく,位置に依存しません.そ のため,“標準オブジェクト”はこれらのシステム上で共有ライブラリのビル ドで使用され,特別なPICコンパイラフラグは要求されません.