1

よくわかりません。Linux on x86 で試してみます。

4

2 に答える 2

2

PIC は、コード内のいくつかのグローバル アドレスを変更するだけでよいため、ローダーのライブをよりシンプルにします。非 PIC コードにはこれらのアドレスがさらに多く含まれているため、再配置が必要なアドレスを含むテーブルは大きくなります。ただし、ローダはどちらの場合でもコードを再配置できる必要があります (たとえば、静的/グローバル変数とすべての関数ポインタのアドレスを解決するため)。

于 2009-11-12T09:50:18.830 に答える
1

x86 ABI の種類は、共有ライブラリで非 PIC コードをサポートします。前に指摘したように、通常は共有されるページが共有されないことを意味します (ld.so はコードではなく特別な場所 (GOT) で参照をパッチする必要があるため)。

しかし、そのように構築されたライブラリは、PIC コードが一般的に遅いため、少し高速になる可能性があります。

amd64 ABI はそれをサポートしていません。

于 2011-04-13T20:11:50.677 に答える