« USL-5P カーネル起動成功 | メイン | USL-5P オリジナルファームウェア作成 »

April 14, 2005

USL-5P 共有ライブラリ入れ替え実験

試しにリンカローダとglibc本体をデフォルトのバージョン2.3.1から構築した2.3.2に入れ替えてみた。

-sh-2.05b# cd /lib
-sh-2.05b# ls -l libc.so.6 ld-linux.so.2
lrwxrwxrwx 1 root root 11 Oct 12 2004 ld-linux.so.2 -> ld-2.3.1.so
lrwxrwxrwx 1 root root 13 Apr 14 02:26 libc.so.6 -> libc-2.3.1.so

-sh-2.05b# ln -sf libc-2.3.2.so libc.so.6
-sh-2.05b# ln -sf ld-2.3.2.so ld-linux.so.2

-sh-2.05b# ls -l libc.so.6 ld-linux.so.2
lrwxrwxrwx 1 root root 11 Apr 14 02:57 ld-linux.so.2 -> ld-2.3.2.so
lrwxrwxrwx 1 root root 13 Apr 14 03:05 libc.so.6 -> libc-2.3.2.so

このあとコマンドをいくつか実行したところ問題なかったのでリブート。すると起動はしたものの途中で一ヶ所リロケーションエラーが起こる。ブザーが鳴って赤いLED点滅。それでもログインしてlsとかpsなどのコマンドは実行OK。

Starting httpd: /usr/sbin/httpd: relocation error: /lib/libpthread.so.0: symbol __rpc_thread_destroy, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference
[FAILED]

シンボル参照に失敗している。このlibpthreadを含め、他の共有ライブラリも入れ替える必要があるようだ。

USL-5Pデフォルトのシステム内にはldconfigコマンドが存在しない。ld.so.cache、ld.so.confもない。この状態でlibc.so.6がなくなると、以降glibcを必要とするコマンドは全て使えなくなるので注意

-sh-2.05b# ls -l libc.so.6
lrwxrwxrwx 1 root root 13 Oct 12 2004 libc.so.6 -> libc-2.3.1.so
-sh-2.05b# rm libc.so.6
-sh-2.05b# ls
ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

投稿者 salmoon : April 14, 2005 03:34 AM

トラックバック

このエントリーのトラックバックURL:
http://salmoon.s56.xrea.com/mt/mt-tb.cgi/130

コメント

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)