Feb 222006
 

タイトルの通りです。

$ mozilla
ld.so.1: mozilla-bin: fatal: libgcc_s.so.1: open failed: No such file or directory
ld.so.1: mozilla-bin: fatal: relocation error: file /usr/sfw/lib/mozilla/mozilla-bin: symbol gtk_init: referenced symbol not found
Killed

libgcc_s.soがないとのことですが、/usr/sfw/lib/libgcc_s.so.1は存在しています。

$ ls -l /usr/sfw/lib/libgcc_s.so*
lrwxrwxrwx   1 root     root          13 Aug  6  2005 /usr/sfw/lib/libgcc_s.so -> libgcc_s.so.1
-r-xr-xr-x   1 root     bin        46692 Jan 23  2005 /usr/sfw/lib/libgcc_s.so.1

ところが、mozilla-binをlddしてみると確かに見つけられていません。

$ ldd /usr/sfw/lib/mozilla/mozilla-bin
        libmozjs.so =>   /usr/sfw/lib/mozilla/libmozjs.so
        libplds4.so =>   /usr/sfw/lib/mozilla/libplds4.so
        libplc4.so =>    /usr/sfw/lib/mozilla/libplc4.so
        libnspr4.so =>   /usr/sfw/lib/mozilla/libnspr4.so
        libpthread.so.1 =>       /lib/libpthread.so.1
        libdl.so.1 =>    /lib/libdl.so.1
        librt.so.1 =>    /lib/librt.so.1
        libgtk-x11-2.0.so.0 =>   /usr/lib/libgtk-x11-2.0.so.0
        libgdk-x11-2.0.so.0 =>   /usr/lib/libgdk-x11-2.0.so.0
        libatk-1.0.so.0 =>       /usr/lib/libatk-1.0.so.0
        libgdk_pixbuf-2.0.so.0 =>        /usr/lib/libgdk_pixbuf-2.0.so.0
        libm.so.2 =>     /lib/libm.so.2
        libmlib.so.2 =>  /usr/lib/libmlib.so.2
        libpangoxft-1.0.so.0 =>  /usr/lib/libpangoxft-1.0.so.0
        libpangox-1.0.so.0 =>    /usr/lib/libpangox-1.0.so.0
        libpango-1.0.so.0 =>     /usr/lib/libpango-1.0.so.0
        libgobject-2.0.so.0 =>   /usr/lib/libgobject-2.0.so.0
        libgmodule-2.0.so.0 =>   /usr/lib/libgmodule-2.0.so.0
        libglib-2.0.so.0 =>      /usr/lib/libglib-2.0.so.0
        libX11.so.4 =>   /usr/lib/libX11.so.4
        libsocket.so.1 =>        /lib/libsocket.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libCstd.so.1 =>  /usr/lib/libCstd.so.1
        libCrun.so.1 =>  /usr/lib/libCrun.so.1
        libw.so.1 =>     /lib/libw.so.1
        libthread.so.1 =>        /lib/libthread.so.1
        libc.so.1 =>     /lib/libc.so.1
        libaio.so.1 =>   /lib/libaio.so.1
        libmd5.so.1 =>   /lib/libmd5.so.1
        libXft.so.2 =>   /usr/openwin/lib/libXft.so.2
        libfreetype.so.6 =>      /usr/sfw/lib/libfreetype.so.6
        libXrender.so.1 =>       /usr/sfw/lib/libXrender.so.1
        libfontconfig.so.1 =>    /usr/lib/libfontconfig.so.1
        libXrandr.so.2 =>        /usr/X11/lib/libXrandr.so.2
        libXi.so.5 =>    /usr/openwin/lib/libXi.so.5
        libXext.so.0 =>  /usr/openwin/lib/libXext.so.0
        libpangoft2-1.0.so.0 =>  /usr/lib/libpangoft2-1.0.so.0
        libmp.so.2 =>    /lib/libmp.so.2
        libscf.so.1 =>   /lib/libscf.so.1
        libexpat.so.0 =>         /usr/sfw/lib/libexpat.so.0
        libz.so.1 =>     /usr/lib/libz.so.1
        libfreetype.so.6 =>      /usr/lib/libfreetype.so.6
        libexpat.so.0 =>         /usr/lib/libexpat.so.0
        libgcc_s.so.1 =>         (file not found)
        libdoor.so.1 =>  /lib/libdoor.so.1
        libuutil.so.1 =>         /lib/libuutil.so.1
        libgcc_s.so.1 =>         (file not found)
        libgcc_s.so.1 =>         (file not found)
        /usr/sfw/lib/mozilla/cpu/sparcv8plus/libnspr_flt4.so
        /usr/lib/cpu/sparcv8plus+vis/libmlib.so.2
        /usr/lib/cpu/sparcv8plus/libCstd_isa.so.1
        /platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
        /platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1

/usr/sfw/libにあるものが全部見つからないならまだわかるのですが、libgcc_s.so.1以外はOKです。
objdumpしてみてもRUNPATH、RPATHには/usr/sfw/libが含まれています。

$ /usr/sfw/bin/gobjdump -x /usr/sfw/lib/mozilla/mozilla-bin | grep 'R[UN|]PATH'
  RUNPATH     $ORIGIN:$ORIGIN/..:/usr/sfw/lib
  RPATH       $ORIGIN:$ORIGIN/..:/usr/sfw/lib

皆目見当がつかないのでtrussしてみたら、ちょっと気になることが。

:
19087:  stat("/opt/portage/usr/lib/libc.so.1", 0xFFBFF2A0) Err#2 ENOENT
19087:  stat("/opt/portage/lib/libc.so.1", 0xFFBFF2A0)  Err#2 ENOENT
19087:  stat("/opt/portage/usr/lib/libc.so.1", 0xFFBFF2A0) Err#2 ENOENT
19087:  stat("/opt/portage/usr/lib/libgcc_s.so.1", 0xFFBFF2A0) Err#2 ENOENT
19087:  stat("/opt/portage/lib/libgcc_s.so.1", 0xFFBFF2A0) Err#2 ENOENT
19087:  stat("/opt/portage/usr/lib/libgcc_s.so.1", 0xFFBFF2A0) Err#2 ENOENT
19087:  stat("/lib/libgcc_s.so.1", 0xFFBFF2A0)          Err#2 ENOENT
19087:  stat("/usr/lib/libgcc_s.so.1", 0xFFBFF2A0)      Err#2 ENOENT
19087:  stat("/usr/openwin/lib/libgcc_s.so.1", 0xFFBFF2A0) Err#2 ENOENT
19087:  stat("/usr/local/lib/libgcc_s.so.1", 0xFFBFF2A0) Err#2 ENOENT
19087:  stat("/usr/kerberos/lib/libgcc_s.so.1", 0xFFBFF2A0) Err#2 ENOENT
:

以前入れたPortarisの影響でしょうか? /opt/portarisも探しにいってます。
ldconfigや/etc/ld.so.confなどいろいろ残骸が残ってましたので思い当たるところは消してみたのですが、改善しません。
もう一度Portarisをやってみろとの神の声でしょうか 😛

PortarisはGentoo PortageをSolaris上で使おうという試みです。

Portarisのアーカイブをダウンロードしてinstall-sparc.shを確認すると、

render extension and xft headers and libs will be overwritten.

とメッセージを出力する部分があります。
ふと気がついて/usr/lib/libfreetype.so.6をlddしてみると、libgcc_s.soがnot foundになります。
どうもこれはPortarisで導入されたライブラリのようですので、pkgchk -l -pでこの共有ライブラリがパッケージに属さないことを確認して削除、他にもlibgcc_sやlibfreetypeがnot foundになるライブラリを片っ端から削除していけば、直りそうな予感。
あとはヘッダファイル等も消さなければいけないようですし、ほんとに直るかわかりませんが、一息つけました。

Sorry, the comment form is closed at this time.