64bit機で replaceGIFData が動かない

題名のような報告をユーザから受けたので早速調査。
…しようにも手元に64bit機が無いので色んな所でshout開始。

>y< どなたか 64bit環境の linux を動かしてる方いませんか。(;'-')
>y< 自分の作ってるライブラリの特定メソッドが 64bit でだけ問題が起きるみたいで… (;ω;)
<I> 64bitのCentOSが入ったVirtual Machineが一つあるけど

という感じでアカウントを頂けました。(σ´Д`)σ 持つべきものは友達。

検証

で、実際に試してみたら確かに replaceGIFData が動きません。

[yoya@i]$ php swfreplacegifdata.php  ~/flash/cheki.swf 1 aria.gif
php: symbol lookup error: /home/yoya/lib/php/extensions/no-debug-non-zts-20060613/swfed.so: undefined symbol: DGifOpen

あー。リンクされてないのか…

LDFLAGS="-L/home/yoya/lib -Wl,-rpath,/home/yoya/lib -lgif" \
./configure --prefix=/home/yoya --with-gif-dir=/home/yoya --with-png-dir=/home/yoya

これで動きました。とりあえず回避策は発見。

32bit CentOS 環境では -lgif なくても動いてるけど、この違いは何だろうか。