[[diary/Kojima]]
・いつの間にやら..
xv-3.10a を Plamo64 用にビルドしようとすると,
cc -m64 -O2 -DXSHM -mno-align-double -DDOJPEG -I/usr/include -DDOTIFF -I/usr/include -DDOPDS
-DLINUX -DDOPNG -I/usr/include -I/usr/lib -DBZLIB -DMGCSFXDIR=\"/usr/lib64\" -c xvimage.c
xvimage.c: In function 'Pic8ToXImage':
xvimage.c:1819: error: インクリメントの中での左辺値が無効です
xvimage.c:1820: error: インクリメントの中での左辺値が無効です
xvimage.c:1830: error: インクリメントの中での左辺値が無効です
xvimage.c:1831: error: インクリメントの中での左辺値が無効です
make: *** [xvimage.o] エラー 1
などというエラーが.該当個所を見てみると,
*((unsigned char *)ip)++ = (xcol>>8) & 0xff;
*((unsigned char *)ip)++ = (xcol) & 0xff;
などというコードで,unsigned char のポインタにキャストしたポインタをイ
ンクリメントしてデータを書き込む,みたいな処理らしい.このあたりになる
とどう直していいのかよく分からないので,他のディストリのパッチを漁った
ら,SuSE の srpm に含まれていた jumbo-patch で該当個所を直しているのを
発見.
どうやら *ip の定義を byte にしてキャストを無くような形にしているらしい.
とりあえずその部分の修正をパッチにして PlamoBuild スクリプトで当てるよ
うにして何とかx86_64用のパッケージを作成.しかし,今回作ったパッチで,
いつの間にやら xv-3.10a に対するパッチが154 個にも逹っしているや..
xv は最近のソフトウェアみたいに高機能なツールキットに頼らず,Xaw レベル
でコーディングされている古いソフトウェアだけど,ヘンに凝った機能が無い
分サクサク動くし,画像を見るのに必要な機能は十分に備わっているから,私
みたいな愛好者も多いのだろうなあ.
しかし,元々の xv-3.10a はソースコードは公開されているものの,$25が必要
なシェアウェアなのに,ここまで改造されながら生き残っているというのはあ
る意味凄い気がする.
#comment