perl5.10+apache2.2.13にmod_perl2.0.4をstatic installしようとしたところ、make時に次のようなerrorが表示されました。
$ make cd "src/modules/perl" && make make[1]: Entering directory `/home/endo/tmp/mod_perl-2.0.4/src/modules/perl' <略> In file included from /home/endo/tmp/mod_perl-2.0.4/../httpd-2.2.13/include/ap_config.h:25, from /home/endo/tmp/mod_perl-2.0.4/../httpd-2.2.13/include/httpd.h:43, from modperl_apache_includes.h:27, from mod_perl.h:20, from mod_perl.c:17: /home/endo/tmp/mod_perl-2.0.4/../httpd-2.2.13/srclib/apr/include/apr.h:285: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'apr_off_t' <略>
「以前は、このようなerrorはなかったのに...」と思いながら、ググって見ると、httpd-2.2.13/srclib/apr/include/apr.h の書き換えで、makeが通ったというエントリを見つけました。
http://d.hatena.ne.jp/sodex/20070412/1176334254 における httpd-2.2.13/srclib/apr/include/apr.h の書き換え例
old) typedef off64_t apr_off_t; new) typedef __off64_t apr_off_t;
こういう書き換えは行いたくありませんし、何より以前(多分1年程前)は書き換えを行っていないので、以前、mod_perlをinstallしたperlと、今回失敗したperlのversionを調べてみると、以前はスレッドサポート有効にしているではありませんか。
## 以前(mod_perl make成功) $ /usr/local/bin/perl -v This is perl, v5.10.0 built for i686-linux-thread-multi ## 今回(mod_perl make失敗) $ /usr/local/perl5.10/bin/perl -v This is perl, v5.10.0 built for i686-linux
なので、perlのConfigureを-Dusethreads付でinstallし、改めてmod_perlをmakeしたところ、今度は成功しました。
## perlのConfigure $ ./Configure -Dprefix=/usr/local/perl5.10 -Dusethreads -de ## mod_perl+apacheのconfigure $ /usr/local/perl5.10/bin/perl Makefile.PL \ MP_USE_STATIC=1 \ MP_AP_PREFIX=../httpd-2.2.13 \ MP_AP_CONFIGURE="--prefix=/home/endo/local/apache22 \ --with-mpm=prefork"
mpm=preforkの場合、perlのスレッドサポートは不要だと思っていましたが、ドキュメントをきちんと読んでなかったのかも...
http://perl.apache.org/docs/2.0/user/install/install.html#Prerequisites