よくわかりません。Linux on x86 で試してみます。
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 に答える