changeset 22729:b50c55023f08

lib: include inttypes.h to get PRIu64 & friends Including it in lib.h allows all of the Dovecot code (as well as any external plugins) to just use these macros without worrying about what system headers to include.
author Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
date Wed, 17 May 2017 10:35:03 +0300
parents 3970c1d61616
children c7add8c032df
files configure.ac src/lib/compat.h src/lib/lib.h
diffstat 3 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/configure.ac	Sat Nov 04 14:33:52 2017 +0200
+++ b/configure.ac	Wed May 17 10:35:03 2017 +0300
@@ -328,7 +328,7 @@
 AC_DEFINE([DOVECOT_VERSION_MAJOR], regexp(AC_PACKAGE_VERSION, [^\([0-9]+\)\.\([0-9]+\)], [\1]), [Dovecot major version])
 AC_DEFINE([DOVECOT_VERSION_MINOR], regexp(AC_PACKAGE_VERSION, [^\([0-9]+\)\.\([0-9]+\)], [\2]), [Dovecot minor version])
 
-AC_CHECK_HEADERS(strings.h stdint.h unistd.h dirent.h malloc.h inttypes.h \
+AC_CHECK_HEADERS(strings.h stdint.h unistd.h dirent.h malloc.h \
   sys/uio.h sys/sysmacros.h sys/resource.h sys/select.h libgen.h \
   sys/quota.h sys/fs/ufs_quota.h ufs/ufs/quota.h jfs/quota.h \
   quota.h sys/fs/quota_common.h \
@@ -898,6 +898,8 @@
   $2]], [[$1 t;]])],[i_cv_type_$1=yes],[i_cv_type_$1=no])])
   AC_MSG_RESULT($i_cv_type_$1)
 ])
+dnl we require inttypes.h for PRIu{8,16,32,64} macros
+AC_CHECK_HEADER(inttypes.h,,AC_MSG_ERROR([inttypes.h missing but required]))
 
 dnl some systems don't have stdint.h, but still have some of the types
 dnl defined elsewhere
--- a/src/lib/compat.h	Sat Nov 04 14:33:52 2017 +0200
+++ b/src/lib/compat.h	Wed May 17 10:35:03 2017 +0300
@@ -1,10 +1,6 @@
 #ifndef COMPAT_H
 #define COMPAT_H
 
-#if defined (HAVE_INTTYPES_H) && (defined(__osf__) || defined(_HPUX_SOURCE))
-#  include <inttypes.h>
-#endif
-
 /* well, this is obviously wrong since it assumes it's 64bit, but older
    GCCs don't define it and we really want it. */
 #ifndef LLONG_MAX
--- a/src/lib/lib.h	Sat Nov 04 14:33:52 2017 +0200
+++ b/src/lib/lib.h	Wed May 17 10:35:03 2017 +0300
@@ -17,6 +17,7 @@
 #include <limits.h> /* INT_MAX, etc. */
 #include <errno.h> /* error checking is good */
 #include <sys/types.h> /* many other includes want this */
+#include <inttypes.h> /* PRI* macros */
 
 #ifdef HAVE_STDINT_H
 #  include <stdint.h> /* C99 int types, we mostly need uintmax_t */