5.6.1 Portability of Headers

This section documents some collected knowledge about common headers,
and the problems they cause. By definition, this list always requires
additions. A much more complete list is maintained by the Gnulib
project (see section Gnulib), covering Posix Headers in GNU gnulib and Glibc Headers in GNU gnulib. Please help us keep
the gnulib list as complete as possible.

The C99 standard says that ‘inttypes.h’ includes
‘stdint.h’, so there’s no need to include ‘stdint.h’
separately in a standard environment. Some implementations have
‘inttypes.h’ but not ‘stdint.h’ (e.g., Solaris 7), but we don’t
know of any implementation that has ‘stdint.h’ but not
‘inttypes.h’.

‘linux/irda.h’

It requires ‘linux/types.h’ and ‘sys/socket.h’.

‘linux/random.h’

It requires ‘linux/types.h’.

‘net/if.h’

On Darwin, this file requires that ‘sys/socket.h’ be included
beforehand. One should run: