Blob Blame History Raw
Don't depend on a consumer of <packer.h> to be using autoconf, and to be
checking for for the presence of <inttypes.h> and <stdint.h>, and including
its own "config.h" before including <packer.h>, in order for this to be
correct on 64-bit machines.

diff -up cracklib-2.8.15/configure.in cracklib-2.8.15/configure.in
--- cracklib-2.8.15/configure.in	2009-11-18 18:58:21.000000000 -0500
+++ cracklib-2.8.15/configure.in	2009-12-01 15:16:35.000000000 -0500
@@ -26,6 +26,19 @@ AC_CHECK_HEADERS(zlib.h, AC_DEFINE(HAVE_
 
 AC_SEARCH_LIBS(gzopen, z)
 
+if test x$ac_cv_header_inttypes_h = xyes ; then
+	CRACKLIB_INTEGER_TYPES1="#include <inttypes.h>"
+	CRACKLIB_INTEGER_TYPES2=
+elif test x$ac_cv_header_stdint_h = xyes ; then
+	CRACKLIB_INTEGER_TYPES1="#include <stdint.h>"
+	CRACKLIB_INTEGER_TYPES2=
+else
+	CRACKLIB_INTEGER_TYPES1="typedef unsigned int uint32_t;"
+	CRACKLIB_INTEGER_TYPES2="typedef unsigned short uint16_t;"
+fi
+AC_SUBST(CRACKLIB_INTEGER_TYPES1)
+AC_SUBST(CRACKLIB_INTEGER_TYPES2)
+
 dnl Cygwin workaround
 AC_MSG_CHECKING(if LINE_MAX is defined)
 AC_EGREP_CPP(yes,
@@ -92,5 +105,6 @@ AC_SUBST(CROSS_COMPILING, $cross_compili
 
 AC_OUTPUT(util/Makefile lib/Makefile doc/Makefile python/Makefile Makefile \
 		python/setup.py \
+		lib/packer.h \
 		po/Makefile.in m4/Makefile dicts/Makefile cracklib.spec)
 
diff -up cracklib-2.8.15/lib/packer.h.in cracklib-2.8.15/lib/packer.h.in
--- cracklib-2.8.15/lib/packer.h.in	2009-12-01 15:15:38.000000000 -0500
+++ cracklib-2.8.15/lib/packer.h.in	2009-12-01 15:15:38.000000000 -0500
@@ -30,17 +30,8 @@
 #define _(String) (String)
 #endif
 
-#if defined(HAVE_INTTYPES_H)
-#include <inttypes.h>
-#else
-#if defined(HAVE_STDINT_H)
-#include <stdint.h>
-#else
-typedef unsigned int uint32_t;
-typedef unsigned short uint16_t;
-#endif
-#endif
-
+@CRACKLIB_INTEGER_TYPES1@
+@CRACKLIB_INTEGER_TYPES2@
 
 struct pi_header
 {
@@ -83,6 +74,9 @@ typedef struct {
 	int dummy;
 } PWDICT;
 
+@CRACKLIB_INTEGER_TYPES1@
+@CRACKLIB_INTEGER_TYPES2@
+
 #endif
 
 extern PWDICT *PWOpen(const char *prefix, char *mode);