[PHP-users 31347] php.ibi でエクステンションで32ビット指定

Masaaki Suga suga @ tenrikyo.or.jp
2007年 1月 31日 (水) 13:25:31 JST


須賀です

solaris 8で32ビット版gcc 2.95.2でapache.php,あるモジュール(phpで使うxxx.soファイル)
を構築して,solaris8では問題なく動くのですが

solaris 9で構築することになり,apache,php等をinstallしましたが
sokaris9ではgccが3.4.4のsolari9 64bit版のパッケージです

あるモジュール(xxx.so)を作成するときに必要なzzzz.oは,32ビットようなので
gccで64ビットでコンパイルすると,ELFのエラーがでたので
gccの-m32オプションを付けてコンパイルしてコンパイルは通りました
(xxx.soの32ビット版は作成完了)

しかし,実際cgiを起動して,phpからそのxxx.soの中の関数郡を使おうとするとELFのエラーがでました

Warning: dl() [function.dl]: Unable to load dynamic library '/usr/local/lib/php/extension/xxxx.so' - ld.so.1: /usr/local/apache/bin/httpd: 重大なエラー: /usr/local/lib/php/extension/xxxx.so: ELF クラスが正しくありません: ELFCLASS32 in /usr/local/apache/htdocs/yyy/zzz.php on line 11

これは,apacheからphpのエクステンションのxxx.soの中の関数を呼び出そうとしたが
32ビットと64ビットのリンクができない というようなメッセージがでました

そこで,apache,phpを32ビットでinstallすればいいのではと思いましたが,
いろいろとやってみましたがうまくいきません

php.iniでエクステンションで32ビットの指定ができればうまくいくのかな
と思いますが,
php.iniファイルのエクステンションで
32ビットや64ビットの指定などはできないのでしょうか?

どなたか,ご教授ください

よろしくお願いします

-------------------------------
須賀正明 suga @ tenrikyo.or.jp
-------------------------------



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