portupgradeなどでアップデートを行った際に、以下のようなエラーが出るケースがあります。
Unable to load dynamic library '/usr/local/lib/php/20090626/pcre.so' Unable to load dynamic library '/usr/local/lib/php/20090626/spl.so'
これは、pcreなどがPHPcoreに統合されたために、参照が必要なくなったにもかかわらず、参照しているために出ます。
対処としては、時間がかかりますが、PHP本体と依存パッケージの再ビルドが一番でしょう。
# portupgrade -rf php5
/usr/ports/security/php5-mcrypt/work/php-5.3.10/ext/mcrypt/mcrypt.c:283: error: 'PHP_FE_END' undeclared here (not in a function)
該当箇所の「PHP_FE_END」を「{NULL, NULL, NULL}」に書き換えるとコンパイルが無事にできます。
error: 'ZEND_MOD_END' undeclared here
この場合も同様に「ZEND_MOD_END」を「{NULL, NULL, NULL}」に書き換えるとコンパイルが無事にできます。
phpMyAdminが依存している、security/php5-filterのインストール中に出ました。
cp /usr/local/include/pcre.h /usr/local/include/php/ext/pcre/
他に直す方法があるのかもしれませんが、こんな感じで逃げました。
先日、こんなエラーが出ました。
5.1.2からhash_mac関数は標準になってるはずなのになぜ?
pkg_replace -N php5-hash
結局、Portsから php5-hash をインストールして解消しました。1)