全て。
誰かが実行可能ファイルを作成しました。
# ldd test_bin
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x4082d000)
libA.so.0 => /usr/lib/libA.so.0 (0x408fe000)
libB.so.0 => /usr/lib/libB.so.0 (0x4093e000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x409ad000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x409fe000)
librt.so.1 => /lib/librt.so.1 (0x40a0a000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x40a19000)
libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x40b25000)
libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x40b67000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40bb0000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40bc3000)
libc.so.6 => /lib/libc.so.6 (0x40be3000)
libm.so.6 => /lib/libm.so.6 (0x40d11000)
libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x40d87000)
/lib/ld-linux.so.3 (0x40000000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x40f4e000)
libdl.so.2 => /lib/libdl.so.2 (0x40f59000)
この場合、libB.so を libA.so にマージしたいと考えています。
そこで、libB.so が提供するすべての API をカバーする libA.so を作成します。
次に、このライブラリと再リンクする必要があります。しかし、test_bin のソースがありません。
ソースなしで実行可能ファイルから libB.so リンクを削除するにはどうすればよいですか?
出来ますか?binutils を見回すだけです。しかし、私はそれを見つけていません。
アドバイスをお願いします。