PHP4.4.2のRHEL系64bit環境でのコンパイル
gd系やcurl系を有効にしてコンパイルする場合、configureに手を入れなきゃいけないのがウザかった。
configureの中で、-L$CPDF_JPEG_DIR/libみたいな感じでハードコーディングしてあるから、RH系のようにlib64とかその辺りに64ビットのライブラリが置いてあるような環境ではconfigureに手を入れないといけない。
てか、lib64ってなんだよ。32ビットと64ビット共存させることなんてありえないと思うんだけど、わけなきゃいけない理由ってあるのかなあ?
そんなこんなで、超適当だけど、
2245,2251c2245,2247< if [ "x86_64" = `uname -m` ]; then< _LIB_64=( lib64 /usr/lib64 /usr/local/lib64 )< _LIB_64_EXT=64< else< _LIB_64=''< _LIB_64_EXT=''< fi
-
- -
>
>
>
21218c21214< if test -f "$i/lib$_LIB_64_EXT/libjpeg.$SHLIB_SUFFIX_NAME" -o -f "$i/lib$_LIB_64_EXT/libjpeg.a"; then
-
- -
> if test -f "$i/lib/libjpeg.$SHLIB_SUFFIX_NAME" -o -f "$i/lib/libjpeg.a"; then
21229c21225< -L$CPDF_JPEG_DIR/lib$_LIB_64_EXTって感じで、適当に変更してコンパイルした。(diff取ったら長かったし汎用性ないので、全部は乗せません。)
もしかすると、必要なライブラリのシンボリックリンクを張ったほうが良かったかもしれないけど、それはそれでなんかねえ。どういうのがベストの解なんだろう?
軽くテストしても大丈夫そうだった。
[kazuaki@localhost /usr/local/src]$ ldd /usr/local/apache2/modules/libphp4.so
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000002a959fd000)
libmysqlclient.so.12 => /usr/local/mysql/lib/mysql/libmysqlclient.so.12 (0x0000002a95b31000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x0000002a95c79000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x0000002a95e04000)
libz.so.1 => /usr/lib64/libz.so.1 (0x0000002a95f2b000)
libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x0000002a9603e000)
libcurl.so.3 => /usr/lib64/libcurl.so.3 (0x0000002a96160000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000002a96293000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000002a963a8000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000002a9652f000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000002a96632000)
libssl.so.4 => /lib64/libssl.so.4 (0x0000002a96749000)
libcrypto.so.4 => /lib64/libcrypto.so.4 (0x0000002a96886000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x0000002a96ab6000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000002a96bcc000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000002a96d3e000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x0000002a96e40000)
libidn.so.11 => /usr/lib64/libidn.so.11 (0x0000002a96f63000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a97095000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
[kazuaki@localhost /usr/local/src]$ ldd /usr/local/bin/php
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003310f00000)
libmysqlclient.so.12 => /usr/local/mysql/lib/mysql/libmysqlclient.so.12 (0x0000002a95558000)
libz.so.1 => /usr/lib64/libz.so.1 (0x000000330a200000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x000000330b000000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x0000003311900000)
libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x000000330e000000)
libcurl.so.3 => /usr/lib64/libcurl.so.3 (0x000000330aa00000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x000000330d500000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000003309a00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003309c00000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003311300000)
libssl.so.4 => /lib64/libssl.so.4 (0x000000330ea00000)
libcrypto.so.4 => /lib64/libcrypto.so.4 (0x000000330dd00000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x000000330e800000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x000000330e400000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x000000330db00000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x000000330e200000)
libidn.so.11 => /usr/lib64/libidn.so.11 (0x000000330a600000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000003309700000)
/lib64/ld-linux-x86-64.so.2 (0x0000003309500000)