2005年11月4日の日記の1番目の記事へのコメント
■uim-trunk ビルド 通らない
kzkさんがuim-anthyをAnthyの予測APIに対応させようとしているとのことなので,これは是非試さねばとひさびさにuim-trunkのr1983をビルドしてみることにしました.前に試した時から結構間が空いたにも関わらず,普通にconfigureが通り,普通にmakeでき・・・ませんでした_|‾|○.uim-ximのビルドが始まったところでこけます(´・ω・`).
make[1]: Entering directory `/home/compile/uim-snapshot-r1983/xim' if g++ -DHAVE_CONFIG_H -I. -I. -I../uim -I../replace -I../uim -I.. -DUSE_GTK_CANDWIN -I/usr/local/include -Wall -I/usr/local/include -I/usr/local/include/freetype2 -O2 -Wnon-virtual-dtor -Wno-long-long -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -MT uim_xim-main.o -MD -MP -MF ".deps/uim_xim-main.Tpo" -c -o uim_xim-main.o `test -f 'main.cpp' || echo './'`main.cpp; \ then mv -f ".deps/uim_xim-main.Tpo" ".deps/uim_xim-main.Po"; else rm -f ".deps/uim_xim-main.Tpo"; exit 1; fi main.cpp:36:1: 警告: "_GNU_SOURCE" が再定義されました <コマンドライン>:4:1: 警告: ここが以前の宣言がある位置です In file included from ../uim/uim-compat-scm.h:57, from main.cpp:59: ../uim/uim-scm.h:152: error: 文法エラー before `)' token main.cpp: 関数 `void xEventRead(int, int)' 内: main.cpp:326: 警告: unused parameter `int fd' main.cpp:326: 警告: unused parameter `int ev' main.cpp: 関数 `void reload_uim(int)' 内: main.cpp:517: 警告: unused parameter `int x' make[1]: *** [uim_xim-main.o] エラー 1 make[1]: Leaving directory `/home/compile/uim-snapshot-r1983/xim' make: *** [all-recursive] エラー 1
んー,uim/uim-scm.hの152行目で文法エラーと言ってます.どの辺がエラーなのか調べると,どうも「uim_scm_gc_protect_stack_internal」なる関数のプロトタイプ宣言の部分にくっついてる「UIM_SCM_NOINLINE」というのが,「__attribute__((noinline))」に置き換わり,さらに「noinline」が/usr/include/linux/compiler.hで「#define noinline」とかやられてるために最終的に「__attribute__(())」になってしまう模様?そして,この記述,Cだと平気なのにC++だとダメ?普通にこの記述をg++にかけるとエラー出て通りませんな・・・.そんな感じでこけてるらしいです.
でも,今まで全然報告が無い所を見ると,自分の変態ビルド環境(kernel-2.6.12.3/gcc-3.3.6)が悪いだけという気も.確かにVMwareのDebian-3.1だと通るし・・・.むー自分の環境と似てる(と思しき)SuSE 9.3をVMwareに入れて試してダメだったら報告してみよう・・・.
[コメントを書く]
2005年11月4日の日記の1番目の記事へのコメント
#include <signal.h>
より前に
#define noinline noinline
書きゃ通るわけですが・・・
何が悪いんだ