PHP 5.6 系が Solaris 11.2 上で Solaris Studio を使ってビルドできなくなっている。
具体的には、以下に書かれているように、zend_language_scanner のところでエラーになる。
- Installing PHP
http://comments.gmane.org/gmane.comp.php.install/12380
requirements を確認しろと書かれているので、確認したところ、
PHP 5.6 系のビルドには bison 2.4 以降が必要だが、
Solaris 11.2 の bison は 2.3.5 なので、これがひっかっている可能性がある。
PHP: Installation on Unix systems - Manual
http://php.net/manual/en/install.unix.php
とりあえず、2.7.1 を --prefix=/usr/bison/2.7 でビルドして、
PHP の configure 時に以下のように指定する。
YACC='/usr/bison/2.7/bin/bison -y'
これでビルドしても、同様のエラーがでてしまうので、
bison のバージョンによるものではなさそう。
Solaris Studio を使うのを諦め、gcc でビルドしてみる。
gcc が c99 を理解できないといけないようなので、
'-std=c99' をつけたらエラーがでた。
'-std=gnu99' に変えたところ、同じエラーは出なくなった。
gnu99 は『c99 + gnu 拡張』ということらしい。
- -std=c99と-std=gnu99は同じ? - bugfix
http://d.hatena.ne.jp/pneumaster/20081224/p1
- c - What's the difference between GNU99 and C99 (Clang)? - Stack Overflow
http://stackoverflow.com/questions/5313536/whats-the-difference-between-gnu99-and-c99-clang
また、mod_php のビルドの際、Apache 関連の libtool から CFLAGS を持ってくるのか、
Solaris Studio 用の CFLAG '-mt' が設定されてしまう。
この '-mt' は ./configure で生成された Makefile 内に書かれているので、
sed などで '-mt' を削除してしまえば、ビルドは通るようになる。
ということで、Solaris 11.2 上でも gcc を使えば PHP 5.6 系をビルドできる
(ビルドしただけで動作は未確認)。
[2015-10-27-1] Solaris 上で PHP を --enable-intl 付きでビルドする