Rename two directories: headers -> posix-headers, functions -> posix-functions.
[gnulib.git] / doc / posix-headers / stdint.texi
1 @node stdint.h
2 @section @file{stdint.h}
3
4 POSIX specification: @url{http://www.opengroup.org/susv3xbd/stdint.h.html}
5
6 Gnulib module: stdint
7
8 Portability problems fixed by Gnulib:
9 @itemize
10 @item
11 This header file is missing on some platforms:
12 OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Interix 3.5, BeOS.
13 @item
14 This header file is very incomplete on some platforms.
15 @item
16 The values of @code{SIG_ATOMIC_MIN} and @code{SIG_ATOMIC_MAX} are incorrect
17 on some platforms:
18 FreeBSD 6.2 / ia64.
19 @item
20 The value of @code{WINT_MAX} is incorrect on some platforms:
21 mingw.
22 @end itemize
23
24 Portability problems not fixed by Gnulib:
25 @itemize
26 @item
27 @code{@{uint,int@}_fast@{8,16,32,64@}_t} may not correspond to the fastest
28 types available on the system.
29 @item
30 Macros are used instead of typedefs.
31 @item
32 Some C preprocessors mishandle constants that do not fit in @code{long int}.
33 For example, as of 2007, Sun C mishandles @code{#if LLONG_MIN < 0} on
34 a platform with 32-bit @code{long int} and 64-bit @code{long long int}.
35 Some older preprocessors mishandle constants ending in @code{LL}.
36 To work around these problems, compute the value of expressions like
37 @code{LONG_MAX < LLONG_MAX} at @code{configure}-time rather than at
38 @code{#if}-time.
39 @end itemize
40
41 The stdint.h module uses @code{#include_next}.  If you wish to install
42 the generated stdint.h file under another name, typically in order to
43 be able to use some of the types defined by stdint.h in your public
44 header file, you could use the following Makefile.am-snippet:
45
46 @example
47
48 BUILT_SOURCES += idn-int.h
49 DISTCLEANFILES += idn-int.h
50 nodist_include_HEADERS += idn-int.h
51
52 idn-int.h:
53         if test -n "$(STDINT_H)"; then \
54                 sed -e s/include_next/include/ gl/stdint.h > idn-int.h; \
55         else \
56                 echo '#include <stdint.h>' > idn-int.h; \
57         fi
58 @end example