位置独立コードは、生成された機械語コードが機能するために特定のアドレスにあるものに依存しないことを意味します。そしてジャンプは相対的です。それでは、Linuxディストリビューションで
システムの範囲を宣言しても大丈夫ですか?-fPIC
特に一般的なIntel PC?
答え1
まず、PICはLinuxディストリビューションの問題ではなく、コンパイラの問題です。 PICは、グローバルにハードコーディングするのではなく、コンパイラフラグに設定することを許可する必要があります。すべてのシステムアーキテクチャがPICをサポートしているわけではありません。ビルドが静的(非共有)の場合、PICは必要なく、非効率的になる可能性があります。一部のアーキテクチャ/コンパイラには異なる同等のフラグがある場合があります。例えば、IBM xl コンパイラーには-qpic
フラグがあります。 Intel PCシステムが必要なときに特定のパッケージ用のビルドファイルを生成すると、移植性が制限される可能性があります。