bfd/
[deliverable/binutils-gdb.git] / config / stdint.m4
CommitLineData
07c58694
PB
1AC_DEFUN([GCC_STDINT_TYPES],
2[AC_REQUIRE([AC_TYPE_INT8_T])
3AC_REQUIRE([AC_TYPE_INT16_T])
4AC_REQUIRE([AC_TYPE_INT32_T])
5AC_REQUIRE([AC_TYPE_INT64_T])
6AC_REQUIRE([AC_TYPE_INTMAX_T])
7AC_REQUIRE([AC_TYPE_INTPTR_T])
8AC_REQUIRE([AC_TYPE_UINT8_T])
9AC_REQUIRE([AC_TYPE_UINT16_T])
10AC_REQUIRE([AC_TYPE_UINT32_T])
11AC_REQUIRE([AC_TYPE_UINT64_T])
12AC_REQUIRE([AC_TYPE_UINTMAX_T])
13AC_REQUIRE([AC_TYPE_UINTPTR_T])])
8eb2f3f0
PB
14
15AC_DEFUN([GCC_HEADER_STDINT],
07c58694
PB
16[AC_REQUIRE([GCC_STDINT_TYPES])
17AC_CHECK_TYPES([int_least32_t, int_fast32_t],,,[#include <sys/types.h>
18#ifdef HAVE_STDINT_H
19#include <stdint.h>
20#endif
21#ifdef HAVE_INTTYPES_H
22#include <inttypes.h>
23#endif])
24
25m4_define([_GCC_STDINT_H], m4_ifval($1, $1, _stdint.h))
26m4_if(m4_bmatch(m4_quote(/_GCC_STDINT_H),
27 /stdint\.h$, bad,
28 /inttypes\.h$, bad, ok), bad,
29 [m4_fatal([cannot overwrite ]m4_quote(_GCC_STDINT_H))])
8eb2f3f0 30
8eb2f3f0 31AC_CONFIG_COMMANDS(_GCC_STDINT_H, [
07c58694
PB
32cat > $tmp/_GCC_STDINT_H <<EOF
33#ifndef GCC_GENERATED_STDINT_H
34#define GCC_GENERATED_STDINT_H 1
35
36#include "config.h"
37#include <sys/types.h>
38#ifdef HAVE_STDINT_H
39#include <stdint.h>
40#endif
41#ifdef HAVE_INTTYPES_H
42#include <inttypes.h>
43#endif
8eb2f3f0 44EOF
8eb2f3f0 45
8eb2f3f0 46if test "$ac_cv_type_int_least32_t" != yes; then
07c58694 47 sed 's/^ *//' >> $tmp/_GCC_STDINT_H <<EOF
8eb2f3f0
PB
48
49 /* Define int_least types */
50 typedef int8_t int_least8_t;
51 typedef int16_t int_least16_t;
52 typedef int32_t int_least32_t;
8eb2f3f0 53 typedef int64_t int_least64_t;
8eb2f3f0
PB
54
55 typedef uint8_t uint_least8_t;
56 typedef uint16_t uint_least16_t;
57 typedef uint32_t uint_least32_t;
8eb2f3f0 58 typedef uint64_t uint_least64_t;
8eb2f3f0
PB
59EOF
60fi
61
8eb2f3f0
PB
62if test "$ac_cv_type_int_fast32_t" != yes; then
63 dnl NOTE: The following code assumes that sizeof (int) > 1.
64 dnl Fix when strange machines are reported.
07c58694 65 sed 's/^ *//' >> $tmp/_GCC_STDINT_H <<EOF
8eb2f3f0
PB
66
67 /* Define int_fast types. short is often slow */
68 typedef int8_t int_fast8_t;
69 typedef int int_fast16_t;
70 typedef int32_t int_fast32_t;
8eb2f3f0 71 typedef int64_t int_fast64_t;
8eb2f3f0
PB
72
73 typedef uint8_t uint_fast8_t;
74 typedef unsigned int uint_fast16_t;
75 typedef uint32_t uint_fast32_t;
8eb2f3f0 76 typedef uint64_t uint_fast64_t;
8eb2f3f0
PB
77EOF
78fi
79
07c58694 80echo '@%:@endif /* GCC_GENERATED_STDINT_H */' >> $tmp/_GCC_STDINT_H
8eb2f3f0 81
07c58694
PB
82if test -r _GCC_STDINT_H && cmp -s $tmp/_GCC_STDINT_H _GCC_STDINT_H; then
83 rm -f $tmp/_GCC_STDINT_H
8eb2f3f0 84else
07c58694 85 mv -f $tmp/_GCC_STDINT_H _GCC_STDINT_H
8eb2f3f0
PB
86fi
87
88], [
8eb2f3f0
PB
89ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
90ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
8eb2f3f0
PB
91])
92
93])
This page took 0.156335 seconds and 4 git commands to generate.