X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=config%2Fstdint.m4;h=59f435954407d1685a9c0a8976c27fcfa0fdb412;hb=45d735237b7edf282131d570a7a9f6aa9ee1bd9c;hp=07923826c16c42e591d568ae1c3a928e4dabac99;hpb=1dc60eebce6d04bbb9da9b9816eef63f9d682d12;p=deliverable%2Fbinutils-gdb.git diff --git a/config/stdint.m4 b/config/stdint.m4 index 07923826c1..59f4359544 100644 --- a/config/stdint.m4 +++ b/config/stdint.m4 @@ -1,10 +1,24 @@ +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 dnl existence of an include file that defines a set of dnl typedefs, especially uint8_t,int32_t,uintptr_t. dnl Many older installations will not provide this file, but some will -dnl have the very same definitions in . In other enviroments +dnl have the very same definitions in . In other environments dnl we can use the inet-types in which would define the dnl typedefs int8_t and u_int8_t respectivly. dnl @@ -25,7 +39,7 @@ dnl If your installed header files require the stdint-types you will want to dnl create an installable file mylib-int.h that all your other installable dnl header may include. So, for a library package named "mylib", just use dnl GCC_HEADER_STDINT(mylib-int.h) -dnl in configure.in and install that header file in Makefile.am along with +dnl in configure.ac and install that header file in Makefile.am along with dnl the other headers (mylib.h). The mylib-specific headers can simply dnl use "#include " to obtain the stdint-types. dnl @@ -132,7 +146,7 @@ if test $acx_cv_header_stdint = stddef.h; then AC_MSG_CHECKING(for type equivalent to int8_t) case "$ac_cv_sizeof_char" in 1) acx_cv_type_int8_t=char ;; - *) AC_MSG_ERROR(no 8-bit type, please report a bug) + *) AC_MSG_ERROR([no 8-bit type, please report a bug]) esac AC_MSG_RESULT($acx_cv_type_int8_t) @@ -140,7 +154,7 @@ if test $acx_cv_header_stdint = stddef.h; then case "$ac_cv_sizeof_int:$ac_cv_sizeof_short" in 2:*) acx_cv_type_int16_t=int ;; *:2) acx_cv_type_int16_t=short ;; - *) AC_MSG_ERROR(no 16-bit type, please report a bug) + *) AC_MSG_ERROR([no 16-bit type, please report a bug]) esac AC_MSG_RESULT($acx_cv_type_int16_t) @@ -148,7 +162,7 @@ if test $acx_cv_header_stdint = stddef.h; then case "$ac_cv_sizeof_int:$ac_cv_sizeof_long" in 4:*) acx_cv_type_int32_t=int ;; *:4) acx_cv_type_int32_t=long ;; - *) AC_MSG_ERROR(no 32-bit type, please report a bug) + *) AC_MSG_ERROR([no 32-bit type, please report a bug]) esac AC_MSG_RESULT($acx_cv_type_int32_t) fi @@ -171,7 +185,7 @@ if test "$ac_cv_type_uintptr_t" != yes; then 2) acx_cv_type_intptr_t=int16_t ;; 4) acx_cv_type_intptr_t=int32_t ;; 8) acx_cv_type_intptr_t=int64_t ;; - *) AC_MSG_ERROR(no equivalent for intptr_t, please report a bug) + *) AC_MSG_ERROR([no equivalent for intptr_t, please report a bug]) esac AC_MSG_RESULT($acx_cv_type_intptr_t) fi @@ -218,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 @@ -361,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 */ @@ -390,8 +475,16 @@ if test "$ac_cv_type_uintptr_t" != yes; then sed 's/^ *//' >> tmp-stdint.h <> tmp-stdint.h <