[Anthy-dev 1832] Re: asprintf

アーカイブの一覧に戻る

YamaKen yamak****@bp*****
2005年 2月 15日 (火) 09:27:02 JST


ヤマケンです。

At Mon, 14 Feb 2005 20:09:27 +0900,
ekato****@ees***** wrote:
> 
> On Mon, Feb 14, 2005 at 08:01:34PM +0900,
> Etsushi Kato <ekato****@ees*****> wrote:
> 
> > > これの絡みでgccに対する-ansiオプションが削除されたようですが、
> > > gcc拡張の排除を確実にしておくためにもこれは外したくないと思いま
> > > す。また、_GNU_SOURCEもこれと同様の理由でdefineしない方がいいと
> > > 思っています。
> > > 
> > > asprintfのようなglibc拡張を使いたい時は必ずlibuimにuim_asprintf 
> > > のような名前で代替実装を用意し、全プラットフォームでそれを使うと
> > > いうのはどうでしょうか。
> > 
> > -ansi も _GNU_SOURCEも uim-xim だけで、libuim は関係ないので大丈夫だと
> >  思います。

-ansiの方はconfigure.acのCXXFLAGSをいじっていますが、現在のとこ
ろこれを参照するのはuim-ximのみという事ですね。早とちりでCFLAGS
にも影響していると思ってしまっていました。CFLAGSの方は元々
-std=gnu89ですね。

ただ、_GNU_SOURCEの方は露骨に外部の非標準なglibc拡張をアテにして、
それに対する制御もソース中に書く事になるのが気持ち悪いと感じて先
のような提案をしてみました。最近はasprintf()をサポートしているシ
ステムも多いですが、きちんと規格化されてない関数はなるべく使いた
くないという意識があるので。例えばconstやNULLの扱いが実装によっ
て違ってくる可能性もありますし。

> あと補足なんですが、CXXFLGAGS の -asni については、これがあると strdup
> が使えないという少し古い glibc のシステムがあったので、しょうが無く外
> しました。これらのシステムでコンパイルできないのは、システムのバグとい
> うことで良いのなら asni はもちろんあって構いません。ということで、
> asprintf は関係ありませんです。

そういえばglibcのヘッダはgcc extensionsに依存している個所があっ
て、それでCFLAGSには-std=c89の代わりに-std=gnu89を指定したような
気がします。忘れてました。最近のglibcではこの依存が無くなったと
いう事ですかね。

というわけで、当面はこのままにしておきましょうか。0.4.6リリース
後余裕ができた時に古いglibcに限ってgcc extensionsを許すというよ
うにしたいと思います。

-------------------------------
ヤマケン yamak****@bp*****



Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る