[[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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS