[FreeBSD-users-jp 96321] Re: amd64でi386の同名ライブラリがロードできない

zen-freebsd-ml @ suzuki.que.ne.jp zen-freebsd-ml @ suzuki.que.ne.jp
2018年 10月 8日 (月) 08:43:13 UTC


鈴木@葛飾区です。

書き忘れましたが、 LD_LIBRARY_PATH で32bitライブラリのみ参照されるよう
にしておいてもダメでした。

 # setenv LD_LIBRARY_PATH /usr/local/lib32/10.4:/usr/lib32
 # /usr/local/bin/php53  ← i386バイナリ
 /usr/local/lib/libxml2.so.2: unsupported file layout

この状況では64bitのlsは当然動かないのですけど。。。
 # ls
 /usr/lib32/libxo.so.0: unsupported file layout


From: zen-freebsd-ml @ suzuki.que.ne.jp
Subject: [FreeBSD-users-jp 96320] amd64でi386の同名ライブラリがロードできない
Date: Mon, 08 Oct 2018 15:15:36 +0900 (JST)
Message-ID: <20181008.151536.2044072185712919370.inetd @ x.inetd.co.jp>

> 鈴木@葛飾区です。
> 
> FreeBSD11.2(amd64)をインストールして、その上で古いマシンからi386のプロ
> グラムやライブラリをコピーして動かそうとしているのですが、妙な現象で悩
> んでいます。
> 
> 古い32bitのライブラリは /usr/local/lib32/10.4 にコピーしてあります。
> また、rc.confで
> ldconfig32_paths="/usr/local/lib32/10.4 /usr/lib32 /usr/lib32/compat"
> のように
> 
> perl5.8(i386)のたとえばPostgresSQLのモジュールですが
> 
>  # ldd32 /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBD/Pg/Pg.so
>  /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBD/Pg/Pg.so:
>         libpq.so.5 => not found (0)
>         libm.so.5 => /usr/lib32/libm.so.5 (0x2862e000)
>         libc.so.7 => /usr/lib32/libc.so.7 (0x28072000)
> 
> のようにlibpq.so.5がnot foundになってしまいます。
> もちろん /usr/local/lib32/10.4/libpq.so.5 は存在します。
> 
> どうも様子がおかしいのは libpq.so.5 はamd64のための
> /usr/local/lib/libpq.so.5 も存在していて、/usr/local/lib に同名の64bit
> 用ライブラリがあるとダメなのですが、/usr/local/lib/libpq.so.5 を
> /usr/lib に移動すると不思議なことに
> 
>  # ldd32 /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBD/Pg/Pg.so
>  /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBD/Pg/Pg.so:
>         libpq.so.5 => /usr/local/lib32/10.4/libpq.so.5 (0x2862e000)
>         libm.so.5 => /usr/lib32/libm.so.5 (0x28656000)
>         libc.so.7 => /usr/lib32/libc.so.7 (0x28072000)
>         libthr.so.3 => /usr/lib32/libthr.so.3 (0x28684000)
>         libintl.so.8 => not found (0)
>         libssl.so.7 => /usr/local/lib32/compat/libssl.so.7 (0x286a7000)
>         libcrypto.so.7 => /usr/local/lib32/compat/libcrypto.so.7 (0x28704000)
> 
> のようにlibpq.so.5はokになります。
> (libintl.so.8が新たにnot foundになりますが、これも同名ライブラリが
> 64bit/32bitにあります)
> ※amd64のプログラムの方も問題ありません。
> 
> 32bit用ライブラリと同名のファイルが /usr/lib に存在するとokで
> /usr/local/lib以下に存在するとダメな理由があるのでしょうか??
> 
> 11.2でpkg/portsからインストールしたライブラリを/usr/libに移せば動きそ
> うではあるのですが、メンテナンス性が悪くなるためできれば避けたいです。
> 
> 宜しくお願いいたします。
> ---
> すずき
> _______________________________________________
> freebsd-users-jp @ freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe @ freebsd.org"
> 
> 


freebsd-users-jp メーリングリストの案内