PIC - Position Independent Codeについて

PICとは

任意のアドレスにロード可能なコードのこと。データのアクセスやジャンプは相対アドレスで行われます。

共有ライブラリはPICでコンパイルする

PICでコンパイルすることで共有ライブラリが意図している本来の機能を発揮できます。PICでないと実行時の再配置の処理が増えて遅くなったり、物理メモリ上にある共有ライブラリを複数のプロセスのユーザメモリ空間で共有するということができません。

PICでコンパイルするにはgccの場合は"-fPIC"を指定します。

よさげなページ発見 => http://0xcc.net/blog/archives/000107.html

これBinary Hacksの著者の人かな?

MySQLのconfigure時に--with-picを指定すると

gccに"-fPIC"フラグが渡されてMySQLの静的ライブラリが再配置可能になり、他の共有オブジェクトへのリンクが可能となります。