おもてです。

08/04/11 に KIHARA 
Hideto<[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]>
 さんは書きました:
>  /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  
<[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]>

        [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([&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;])

--~--~---------~--~----~------------~-------~--~----~
Google Groups "uim-ja" group
uim-ja@googlegroups.com
http://groups.google.com/group/uim-ja/about
-~----------~----~----~----~------~----~------~--~---

メールによる返信