TOKUNAGA Hiroyuki
tkng****@xem*****
2005年 2月 14日 (月) 02:33:10 JST
チェックありがとうございます。助かります。 On Sun, 13 Feb 2005 07:29:43 +0900 (JST) Konosuke Watanabe <nosuk****@csc*****> wrote: > uim-0.4.6正式リリースが近いようなので,Solarisでもビルドでき > るかどうか,r623で試してみました.残念ながらそのままではビル > ドできなかったのですが,あれこれいじった結果,なんとか動くよ > うになったので報告します. なかなかbetaが出せなくて申し訳ないです…。 > まず,uim-helper.c で使われてる sig_tですが,これはSolarisに > はないみたいです. > > 単なるsignalハンドラだと信じて,とりあえずここは, > > void (*old_sigpipe) (int); > > と置き換えて切りぬけてみました. FreeBSDのmanとか眺めてみました(前にMLで紹介されていた http://www.freebsd.org/cgi/man.cgiを使いました。便利ですね。)が、 sig_tが定義されていなければ定義しちゃって大丈夫そうです。 現在は既に加藤さんにより、そのように修正されているみたいです。ありがと うございます。 > それから,uim-ximの中で使われているstrsepなんですが,自前の > 場合,util.hの中で「extern "C"」しないとuim-ximがリンクに失 > 敗します・・・. > > が,これだけだとまだだめで,自前strsepの関数名を「uim_strsep」 > のように「uim」で始まる名前にしないとuim-xim からリンクでき > ませんでした. > > strsepやx_strsepみたいな「uim」で始まらない名前だと,libtool > がmake時にごにょごにょやって,libuim.soで関数が外から見えな > くなってしまうみたいです. > (nmで見ると,strsep関数は「GLOB」でなく「LOCL」になっている) > > #初めての経験したんですが,これって常識なんでしょうか・・・? 自前strsepがuim-xim側で使えないのはまったく気づいてませんでした。申し 訳ないです。 libuimはsiodを含んでいるので関数名の汚染がかなり激しく、昔Nautilusを segvらせたりした事があった(正確にはNautilusがリンクしてるcdparanoiaかな にかの関数名と被ってたような記憶があります)ので、LDFLAGSに -export-symbols-regex uim.\* というオプションを渡すようにしています。御推 察の通り、これはlibtoolの機能です。 Nautilusの話は確か2003年の夏頃だったと思うので、もう1年半ぐらい前ので きごとですね。その頃既に4年だったのに、今もまだ大学生であると言う不思議。 -- 徳永拓之 tkng****@xem***** http://kodou.net/