hnwの日記

Snow Leopardで少し古いPHPをビルドする方法

PHP bugs #49332で指摘されているのですが、PHP5.2.10以前およびPHP5.3.0をSnow Leopard(MacOSX 10.6)でビルドしようとすると、リンク時に下記のようなエラーが出てビルドに失敗します。

Undefined symbols:
  "_res_9_search", referenced from:
      _zif_dns_get_mx in dns.o
      _zif_dns_check_record in dns.o
  "_res_9_dn_expand", referenced from:
      _zif_dns_get_mx in dns.o
  "_res_9_dn_skipname", referenced from:
      _zif_dns_get_mx in dns.o
      _zif_dns_get_mx in dns.o


対策としては、リンクオプションとして-lresolvをつけてやればOKです。PHPのconfigure時に下記のようにすればMakefileのリンクオプションが追加されます*1

$ EXTRA_LIBS=-lresolv ./configure


ちなみに、phpallのおまけの、全PHPをビルドするスクリプト(install-all-php.sh)も本件に対応しました。Snow Leopard環境とCentOS5(64bit)環境で全PHPがビルドできましたが、動かなくなった環境などあれば教えてください。

*1:csh系ユーザーはよしなに読みかえてください