おもてです。 08/04/11 に KIHARA Hideto<[メールアドレス保護]> さんは書きました: > /usr/include/limits.hでLLONG_MAXの#defineは2か所あって、 > 下の方(134行目)は以下でくくられています。 > 122行目 #if defined __GNUC__ && !defined _GCC_LIMITS_H_ > プリプロセッサの出力を見ると、/usr/include/limits.hのinclude前に、 > /usr/lib/gcc/i486-linux-gnu/4.1.2/include/limits.hがincludeされていて、 > そこで_GCC_LIMITS_H_が#defineされている(7行目)ため、 > /usr/include/limits.hのLLONG_MAXが#defineされません。
これが原因でした。glibc2.7だとLLONG_MINの定義前で#endifで括られているので __USE_ISOC99が定義されていれば # ifndef LLONG_MIN # define LLONG_MIN (-LLONG_MAX-1) # endif # ifndef LLONG_MAX # define LLONG_MAX __LONG_LONG_MAX__ # endif を見に行くようです。__USE_ISOC99は_GNU_SOURCEが定義されていれば有効になる ようです(/usr/include/features.h参照)。 修正自体はglibc 2.3.6のリリース前ですが、取り込まれなかったようです。 2005-09-13 Jakub Jelinek <[メールアドレス保護]> [BZ #1228] * include/limits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Make sure these are defined for -D_GNU_SOURCE or -D_ISOC99_SOURCE even when not -std=c99. どうもお騒がせして申し訳ありませんでした。 -- Masahito Omote([メールアドレス保護]) --~--~---------~--~----~------------~-------~--~----~ Google Groups "uim-ja" group uim-ja@googlegroups.com http://groups.google.com/group/uim-ja/about -~----------~----~----~----~------~----~------~--~---