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

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



加藤泰文です.

# Plamo とは殆んど関係ない質問ですが...

glibc 2.0.x な環境 (RedHat 5.x の頃か!) 上で java (j2sdk 1.4.2) を動か
そうとしています.が,2.0.x では動かないので,glibc 2.1.3 な環境を持っ
てきて,LD_PRELOAD やら LD_LIBRARY_PATH を工夫したら動かんかなあ,と思っ
てやっているのですが,成功はしてません.

そもそも,こういうことは可能なのでしょうか?

どうも,glibc 2.0.x な ld-linux.so.2 では glibc 2.1.x な glibc ライブ
ラリはロード出来ないっぽいです.

---

以下,やったこと (長文)

# ldd java
        libpthread.so.0 => /lib/libpthread.so.0 (0x40018000)
        libdl.so.2 => /lib/libdl.so.2 (0x4002a000)
        libc.so.6 => /lib/libc.so.6 (0x4002d000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

というわけで,/usr/local/java/glibc というディレクトリに glibc 2.1.3
のファイル一式 (RedHat 6.x 辺りの RPM を展開) を置いて...

(1) とりあえず LD_PRELOAD で
# export LD_PRELOAD="/usr/local/java/glibc/lib/ld-linux.so.2 \
>  /usr/local/java/glibc/lib/libpthread.so.0 \
>  /usr/local/java/glibc/lib/libdl.so.2 \
>  /usr/local/java/glibc/lib/libc.so.6"
# 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

ダメ.

(2) なら ld-linux.so.2 も PRELOAD に入れちゃえ!
# export LD_PRELOAD="/usr/local/java/glibc/lib/ld-linux.so.2 \
> /usr/local/java/glibc/lib/libpthread.so.0 \
> /usr/local/java/glibc/lib/libdl.so.2 \
> /usr/local/java/glibc/lib/libc.so.6"
# /usr/local/java/j2sdk1.4.2_09/bin/java -version
Segmentation fault
# ls
Segmentation fault

ダメ.

(3) LD_LIBRARY_PATH でやってみよう.
# export LD_LIBRARY_PATH="/usr/local/java/glibc/lib"
# 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

(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

うむむ.

-- 
==============================================
((((    加藤泰文
○-○                karma @ jazz.email.ne.jp
==============================================
 (Web Page) http://park2.wakwak.com/%7Ekarma/
==============================================

Follow-Ups
[plamo:26699] Re: glibc / ld-linux.so.2 / LD_PRELOAD /LD_LIBRARY_PATH, 名倉昭一

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