木 09/24
よそでちょっとハマった話なのですが、Ruby on RailsをApacheで具合よく動かすためのPassengerを、Solaris 10の環境にインストールしたときに発生したエラーの話です。
手順に従って、必要なパスを通した上で、
----- # APXS=/opt/coolstack/apache2/bin/apxs # export APXS # passenger-install-apache2-module -----
のように実行したところ、
----- g++ -Iext -fPIC -DSOLARIS2=10 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/opt/coolstack/apache2/include -I/opt/coolstack/apache2/include -I/opt/coolstack/include -DSSL_EXPERIMENTAL -DSSL_ENGINE -I/opt/coolstack/apache2/include -D_REENTRANT -I/usr/local/include -D_XOPEN_SOURCE=500 -D_XPG4_2 -D__EXTENSIONS__ -D__SOLARIS__ -D_FILE_OFFSET_BITS=64 -DBOOST_HAS_STDINT_H -mcpu=ultrasparc -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libboost_oxt/oxt/thread.o -c ext/oxt/thread.cpp In file included from ext/oxt/thread.cpp:26: ext/oxt/thread.hpp:115: error: 'long int _sysconf(int)' cannot appear in a constant-expression ext/oxt/thread.hpp:115: error: a function call cannot appear in a constant-expression rake aborted! Command failed with status (1): [g++ -Iext -fPIC -DSOLARIS2=10 -D_POSIX_PTH...] /opt/lib/ruby/gems/1.8/gems/passenger-2.2.5/Rakefile:128:in `define_libboost_oxt_task' (See full trace by running task with --trace) -------------------------------------------- It looks like something went wrong Please read our Users guide for troubleshooting tips: /opt/lib/ruby/gems/1.8/gems/passenger-2.2.5/doc/Users guide Apache.html If that doesn't help, please use our support facilities at: http://www.modrails.com/ We'll do our best to help you. -----
のようにエラーで終了してしまいました。
どうやら Issue 369 として認識されている問題のようで、2.2.6で解消予定となっていますが、とりあえず問題箇所に手を入れればコンパイルできそうです。
ということで、gemのディレクトリの passenger-2.2.5/ext/oxt/thread.hpp を、以下のように問題箇所をコメントアウトしてコンパイルすると、通りました。
-----
public:
/**
* The platform's minimum stack size, in bytes.
*/
/* #if defined(PTHREAD_STACK_MIN)
static const unsigned int MIN_STACK_SIZE = PTHREAD_STACK_MIN;
#else */
static const unsigned int MIN_STACK_SIZE = 1024 * 128;
/* #endif */
-----
※ コメントアウトの2行目がこのソースの115行目にあたります。
この記事へのトラックバックURL: