1 AC_DEFUN([GCC_STDINT_TYPES],
2 [AC_REQUIRE([AC_TYPE_INT8_T])
3 AC_REQUIRE([AC_TYPE_INT16_T])
4 AC_REQUIRE([AC_TYPE_INT32_T])
5 AC_REQUIRE([AC_TYPE_INT64_T])
6 AC_REQUIRE([AC_TYPE_INTMAX_T])
7 AC_REQUIRE([AC_TYPE_INTPTR_T])
8 AC_REQUIRE([AC_TYPE_UINT8_T])
9 AC_REQUIRE([AC_TYPE_UINT16_T])
10 AC_REQUIRE([AC_TYPE_UINT32_T])
11 AC_REQUIRE([AC_TYPE_UINT64_T])
12 AC_REQUIRE([AC_TYPE_UINTMAX_T])
13 AC_REQUIRE([AC_TYPE_UINTPTR_T])])
15 AC_DEFUN([GCC_HEADER_STDINT],
16 [AC_REQUIRE([GCC_STDINT_TYPES])
17 AC_CHECK_TYPES([int_least32_t, int_fast32_t],,,[#include <sys/types.h>
21 #ifdef HAVE_INTTYPES_H
25 # ----------------- Summarize what we found so far
27 m4_define([_GCC_STDINT_H], m4_ifval($1, $1, _stdint.h))
28 m4_if(m4_bmatch(m4_quote(/_GCC_STDINT_H),
30 /inttypes\.h$, bad, ok), bad,
31 [m4_fatal([cannot overwrite ]m4_quote(_GCC_STDINT_H))])
33 # ----------------- done all checks, emit header -------------
34 AC_CONFIG_COMMANDS(_GCC_STDINT_H, [
35 cat >> tmp-stdint.h <<EOF
36 #ifndef GCC_GENERATED_STDINT_H
37 #define GCC_GENERATED_STDINT_H 1
40 #include <sys/types.h>
44 #ifdef HAVE_INTTYPES_H
49 if test "$ac_cv_type_int_least32_t" != yes; then
50 sed 's/^ *//' >> tmp-stdint.h <<EOF
52 /* Define int_least types */
53 typedef int8_t int_least8_t;
54 typedef int16_t int_least16_t;
55 typedef int32_t int_least32_t;
56 typedef int64_t int_least64_t;
58 typedef uint8_t uint_least8_t;
59 typedef uint16_t uint_least16_t;
60 typedef uint32_t uint_least32_t;
61 typedef uint64_t uint_least64_t;
65 if test "$ac_cv_type_int_fast32_t" != yes; then
66 dnl NOTE: The following code assumes that sizeof (int) > 1.
67 dnl Fix when strange machines are reported.
68 sed 's/^ *//' >> tmp-stdint.h <<EOF
70 /* Define int_fast types. short is often slow */
71 typedef int8_t int_fast8_t;
72 typedef int int_fast16_t;
73 typedef int32_t int_fast32_t;
74 typedef int64_t int_fast64_t;
76 typedef uint8_t uint_fast8_t;
77 typedef unsigned int uint_fast16_t;
78 typedef uint32_t uint_fast32_t;
79 typedef uint64_t uint_fast64_t;
83 echo '#endif /* GCC_GENERATED_STDINT_H */' >> tmp-stdint.h
85 if test -r ]_GCC_STDINT_H[ && cmp -s tmp-stdint.h ]_GCC_STDINT_H[; then
88 mv -f tmp-stdint.h ]_GCC_STDINT_H[
92 ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
93 ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"