12,964
回編集
123行目: | 123行目: | ||
ld-linux.so.2ライブラリへの絶対パスは、リンク時に実行ファイルにハードコードされており、<br> | ld-linux.so.2ライブラリへの絶対パスは、リンク時に実行ファイルにハードコードされており、<br> | ||
リンク後に簡単に変更することはできない。(patchelfを使用することで可能である)<br> | リンク後に簡単に変更することはできない。(patchelfを使用することで可能である)<br> | ||
<br> | |||
新しくインストールしたGLIBCで動作するソフトウェアを使用する場合、以下のようにビルドする。<br> | |||
./configure --prefix=<インストールするソフトウェアのディレクトリ> \ | |||
LDFLAGS="-Wl,-rpath <GLIBCのインストールディレクトリ> -Wl,-dynamic-linker=<GLIBCのインストールディレクトリ>/lib64/ld-linux.so.2" | |||
<br> | |||
リンカオプションのrpathオプションは、ランタイムローダがGLIBCのインストールディレクトリにあるライブラリを検索する設定である。<br> | |||
-dynamic-linkerオプションは、ld-linux.so.2へのパスをソフトウェアに焼き付ける設定である。<br> | |||
<br> | |||
ソフトウェアを再リンクする場合、以下の方法がある。<br> | |||
* 適切なchroot環境を設定する。 | |||
* rtldiとバイナリエディタを使用する。 | |||
* patchelfを使用する。 | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]] | [[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]] |