POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdint.h.html
Portability problems fixed by Gnulib:
SIG_ATOMIC_MIN and SIG_ATOMIC_MAX are incorrect
on some platforms:
FreeBSD 6.2/ia64, FreeBSD 13.0/arm64.
WINT_MAX is incorrect on some platforms:
mingw.
INT8_MAX, UINT8_MAX etc. are not usable in
preprocessor expressions on some platforms:
HP-UX 11.23.
INTPTR_MAX and UINTPTR_MAX, although correctly
defined in <stdint.h>, are replaced by empty values when
<limits.h> or <inttypes.h> gets included later on some platforms:
Solaris 9 with GCC 4.5 or newer.
WCHAR_MIN and WCHAR_MAX are not defined in
<stdint.h> (only in <wchar.h>) on some platforms:
Dragonfly.
__STDC_CONSTANT_MACROS to make visible the definitions of
constant macros such as INTMAX_C, and one must define
__STDC_LIMIT_MACROS to make visible the definitions of limit
macros such as INTMAX_MAX.
SIZE_MAX has the wrong type,
albeit with the correct value:
32-bit glibc 2.24 (on s390 architecture), Mac OS X 10.7.
INTMAX_WIDTH are not defined on some platforms:
glibc 2.24, NetBSD 10.0, many others.
Portability problems not fixed by Gnulib:
{uint,int}_fast{8,16,32,64}_t may not correspond to the fastest
types available on the system.
Other <stdint.h> substitutes may define these types differently,
so public header files should avoid these types.
long int.
For example, as of 2007, Sun C mishandled #if LLONG_MIN < 0 on
a platform with 32-bit long int and 64-bit long long int;
this bug was fixed on or before Oracle Developer Studio 12.6
(Sun C 5.15 SunOS_sparc 2017/05/30).
Some older preprocessors mishandle constants ending in LL.
To work around these problems, compute the value of expressions like
LONG_MAX < LLONG_MAX at configure-time rather than at
#if-time.
The stdint-h module uses #include_next. If you wish to install
the generated stdint.h file under another name, typically in order to
be able to use some of the types defined by stdint.h in your public
header file, you could use the following Makefile.am-snippet:
BUILT_SOURCES += idn-int.h DISTCLEANFILES += idn-int.h nodist_include_HEADERS += idn-int.h idn-int.h: if test -n "$(STDINT_H)"; then \ sed -e s/include_next/include/ gl/stdint.h > idn-int.h; \ else \ echo '#include <stdint.h>' > idn-int.h; \ fi