X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=config%2Fstdint.m4;h=d63081d07e208c83fcfc6a470ffc4e3ebe99cdcc;hb=bdce2bd8e1e6918a276ace76ff55e53fc93bf3c8;hp=21ef2ec43ac1903cb9fe5c18ea451abcba21c9a5;hpb=56c15991b10cbf3411186734460e0a5c19805dec;p=pf3gnuchains%2Fgcc-fork.git diff --git a/config/stdint.m4 b/config/stdint.m4 index 21ef2ec43ac..d63081d07e2 100644 --- a/config/stdint.m4 +++ b/config/stdint.m4 @@ -1,3 +1,17 @@ +AC_DEFUN([GCC_STDINT_TYPES], +[AC_REQUIRE([AC_TYPE_INT8_T]) +AC_REQUIRE([AC_TYPE_INT16_T]) +AC_REQUIRE([AC_TYPE_INT32_T]) +AC_REQUIRE([AC_TYPE_INT64_T]) +AC_REQUIRE([AC_TYPE_INTMAX_T]) +AC_REQUIRE([AC_TYPE_INTPTR_T]) +AC_REQUIRE([AC_TYPE_UINT8_T]) +AC_REQUIRE([AC_TYPE_UINT16_T]) +AC_REQUIRE([AC_TYPE_UINT32_T]) +AC_REQUIRE([AC_TYPE_UINT64_T]) +AC_REQUIRE([AC_TYPE_UINTMAX_T]) +AC_REQUIRE([AC_TYPE_UINTPTR_T])]) + dnl @synopsis GCC_HEADER_STDINT [( HEADER-TO-GENERATE [, HEADERS-TO-CHECK])] dnl dnl the "ISO C9X: 7.18 Integer types " section requires the @@ -61,14 +75,17 @@ for i in stdint.h $inttype_headers; do break done if test "$acx_cv_header_stdint" = stddef.h; then - acx_cv_header_stdint_kind="(lacks uintptr_t)" + acx_cv_header_stdint_kind="(lacks uintmax_t)" for i in stdint.h $inttype_headers; do + unset ac_cv_type_uintptr_t unset ac_cv_type_uint32_t unset ac_cv_type_uint64_t _AS_ECHO_N([looking for an incomplete stdint.h in $i, ]) AC_CHECK_TYPE(uint32_t,[acx_cv_header_stdint=$i],continue,[#include #include <$i>]) - AC_CHECK_TYPE(uint64_t,,[acx_cv_header_stdint_kind="(lacks uintptr_t and uint64_t)"], [#include + AC_CHECK_TYPE(uint64_t,,,[#include +#include <$i>]) + AC_CHECK_TYPE(uintptr_t,,,[#include #include <$i>]) break done @@ -81,7 +98,7 @@ if test "$acx_cv_header_stdint" = stddef.h; then _AS_ECHO_N([looking for u_intXX_t types in $i, ]) AC_CHECK_TYPE(u_int32_t,[acx_cv_header_stdint=$i],continue,[#include #include <$i>]) - AC_CHECK_TYPE(u_int64_t,,[acx_cv_header_stdint_kind="(u_intXX_t style, lacks u_int64_t)"], [#include + AC_CHECK_TYPE(u_int64_t,,,[#include #include <$i>]) break done @@ -215,33 +232,63 @@ if test "$acx_cv_header_stdint" = stddef.h; then #ifndef _UINT8_T #define _UINT8_T + #ifndef __uint8_t_defined + #define __uint8_t_defined + #ifndef uint8_t typedef unsigned $acx_cv_type_int8_t uint8_t; #endif + #endif + #endif #ifndef _UINT16_T #define _UINT16_T + #ifndef __uint16_t_defined + #define __uint16_t_defined + #ifndef uint16_t typedef unsigned $acx_cv_type_int16_t uint16_t; #endif + #endif + #endif #ifndef _UINT32_T #define _UINT32_T + #ifndef __uint32_t_defined + #define __uint32_t_defined + #ifndef uint32_t typedef unsigned $acx_cv_type_int32_t uint32_t; #endif + #endif + #endif #ifndef _INT8_T #define _INT8_T + #ifndef __int8_t_defined + #define __int8_t_defined + #ifndef int8_t typedef $acx_cv_type_int8_t int8_t; #endif + #endif + #endif #ifndef _INT16_T #define _INT16_T + #ifndef __int16_t_defined + #define __int16_t_defined + #ifndef int16_t typedef $acx_cv_type_int16_t int16_t; #endif + #endif + #endif #ifndef _INT32_T #define _INT32_T + #ifndef __int32_t_defined + #define __int32_t_defined + #ifndef int32_t typedef $acx_cv_type_int32_t int32_t; #endif + #endif + #endif EOF elif test "$ac_cv_type_u_int32_t" = yes; then sed 's/^ *//' >> tmp-stdint.h <> tmp-stdint.h <> tmp-stdint.h <> tmp-stdint.h <= 199901L #ifndef _INT64_T #define _INT64_T + #ifndef __int64_t_defined + #ifndef int64_t typedef long long int64_t; #endif + #endif + #endif #ifndef _UINT64_T #define _UINT64_T + #ifndef uint64_t typedef unsigned long long uint64_t; #endif + #endif #elif defined __GNUC__ && defined (__STDC__) && __STDC__-0 /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and @@ -358,24 +438,32 @@ else # ifndef _INT64_T # define _INT64_T + # ifndef int64_t __extension__ typedef long long int64_t; # endif + # endif # ifndef _UINT64_T # define _UINT64_T + # ifndef uint64_t __extension__ typedef unsigned long long uint64_t; # endif + # endif #elif !defined __STRICT_ANSI__ # if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ # ifndef _INT64_T # define _INT64_T + # ifndef int64_t typedef __int64 int64_t; # endif + # endif # ifndef _UINT64_T # define _UINT64_T + # ifndef uint64_t typedef unsigned __int64 uint64_t; # endif + # endif # endif /* compiler */ #endif /* ANSI version */ @@ -387,8 +475,16 @@ if test "$ac_cv_type_uintptr_t" != yes; then sed 's/^ *//' >> tmp-stdint.h <> tmp-stdint.h <