[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:29025] Re: glibc / ld-linux.so.2 / LD_PRELOAD / LD_LIBRARY_PATH



太古のメールにフォローします。

KATOH Yasufumi wrote in <87irsxy7g9.wl%karma@xxxxxxxxxxxxxxxx>
>LD_PRELOAD とか LD_LIBRARY_PATH な話は勉強になるので,何かあったら教え
>てくださいね.> 皆様

とあるQ/Aサイトでお節介をしていて、Web を検索したら、おなじみ加藤
さんのポストがひっかかった次第。
2年以上経っているので、すでに勉強済みの内容の可能性が高いですが…

KATOH Yasufumi wrote in <87lkxtyiid.wl%karma@xxxxxxxxxxxxxxxx>
>(4) http://www.gnu.org/software/libc/FAQ.html#s-3.18 を参考に.
># export LD_LIBRARY_PATH="/usr/local/java/glibc/lib \
>> /usr/local/java/glibc/lib/ld-linux.so.2 \
>> /bin/ls \
>> /usr/local/java/j2sdk1.4.2_09/bin/java"
># ls
>(正常に動作)
># /usr/local/java/j2sdk1.4.2_09/bin/java -version
>Segmentation fault
>
>ls は動くなあ...
>
>(5) でも LD_LIBRARY_PATH ってコロン区切りでは?
># export LD_LIBRARY_PATH="/usr/local/java/glibc/lib: \
>> /usr/local/java/glibc/lib/ld-linux.so.2: \
>> /bin/ls: \
>> /usr/local/java/j2sdk1.4.2_09/bin/java"
># ls
>ls: error in loading shared libraries
>/usr/local/java/glibc/lib/libc.so.6: undefined symbol: _dl_initial_searchlist
># /usr/local/java/j2sdk1.4.2_09/bin/java -version
>/usr/local/java/j2sdk1.4.2_09/bin/java: error in loading shared libraries
>/usr/local/java/glibc/lib/libc.so.6: undefined symbol: _dl_initial_searchlist
>
>うむむ.

これが非常に参考になりました。

glibc-faqで示されているコマンドは、「ld-linux.so.2の引数に実行させ
たいバイナリを指定する」と読むようです。

以下のテストでは、環境は redhat-7.3(glibc-2.2.5)で、glibc-2.3.2 
を、--prefix=/usr/local/glibc232 として、コンパイル・インストール
してあります。

$ ls
cat  ls  tar (← redhat-9からコピーしたバイナリ)

$ ./ls
./ls: /lib/i686/libc.so.6: version `GLIBC_2.3' not found (required by ./ls)
$ LD_LIBRARY_PATH=/usr/local/glibc232/lib /usr/local/glibc232/lib/ld-linux.so.2 ./ls
./ls: error while loading shared libraries: libtermcap.so.2: cannot open shared object file: No such file or directory
$ ldd ls
./ls: /lib/i686/libc.so.6: version `GLIBC_2.3' not found (required by ./ls)
        libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001c000)
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
$ LD_LIBRARY_PATH=/usr/local/glibc232/lib:/lib /usr/local/glibc232/lib/ld-linux.so.2 ./ls
cat  ls  tar

-- 
TOYAMA Shin-ichi mailto:shin1@xxxxxxxxxxxxxxxxx

Follow-Ups
[plamo:29026] Re: glibc / ld-linux.so.2 / LD_PRELOAD / LD_LIBRARY_PATH, KATOH Yasufumi

[検索ページ] [メール一覧]
Plamo ML 公開システム