- 締切済み
solaris9に32ビットのapache,phpをinstallしたい
solaris 8で32ビット版gccでapache.php,あるモジュール(phpで使うxxx.soファイル) を構築して,solaris8では問題なく動くのですが solaris 9で構築することになり,apache,php等をinstallしましたが sokaris9ではgccが基本的に64bitなので,apache,phpも64bitでinstall されたようです が,あるモジュールは,32ビットしか対応していないので, 普通にgccしてもELFのエラーがでたので gccの-m32オプションを付けてコンパイルしてコンパイルは通りました (xxx.soは作成完了) しかし,実際cgiを起動して,phpからそのxxx.soの中の関数郡を使おうとするとELFのエラーがでました そこで,apache,phpを32ビットでinstallすればいいのではと思いましたが,Makefileをいじったりしていろいろとやってみましたが うまくいきません gccは3.4.4のsolari9 64bit版のパッケージを入れています solaris9でgccが64ビット環境で,apache,phpのinstallのやり方を 教えてください
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- entree
- ベストアンサー率55% (405/735)
Solaris 9 でも gcc のデフォルトは 32 ビットだと思いますが。(少なくとも、gcc-3.2 のときはそうだったので・・・) コンパイルが通ったのであれば、ldd などを使用して、エラーが発生しているプログラムが間違ったライブラリにリンクされてしまっていないかどうか確認してみてください。 あと、環境変数 LD_LIBRARY_PATH などが設定されているのであれば、削除するか、適切な値を設定するようにしてみてください。 ちなみに Solaris では、基本的には Solaris 8 でコンパイルしたバイナリをそのまま Solaris 9 に持って行っても動作するように互換性の維持がなされていると思いますが・・・。
補足
entreeさん 回答ありがとうございます gcc3.4.4はデフォルトが64ビットのようで gcc3.3.2はデフォルトが32ビットなのでこちらを入れて apacheのgmakeをやってみると ld: 警告: ファイル lib/expat-lite/libexpat.a(xmlparse.o): ELF クラスが正しくありません: ELFCLASS64 となります solaris9でのライブ来関係が64bitになっているのが原因らしく思えますが solaris9(Sparc)でmakeするときに32bitのライブラリを参照すす用にするにはどうすればいいのでしょうか?