Don't depend on a consumer of to be using autoconf, and to be checking for for the presence of and , and including its own "config.h" before including , in order for this to be correct on 64-bit machines. diff -up cracklib-2.8.13/configure.in cracklib-2.8.13/configure.in --- cracklib-2.8.13/configure.in 2008-09-23 07:53:24.000000000 -0400 +++ cracklib-2.8.13/configure.in 2008-10-28 13:39:08.000000000 -0400 @@ -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 " + CRACKLIB_INTEGER_TYPES2= +elif test x$ac_cv_header_stdint_h = xyes ; then + CRACKLIB_INTEGER_TYPES1="#include " + 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, @@ -90,6 +103,8 @@ AM_CONDITIONAL(BUILD_PYTHON,[test "$buil dnl Handle local dict compiling properly AC_SUBST(CROSS_COMPILING, $cross_compiling) -AC_OUTPUT(util/Makefile lib/Makefile doc/Makefile python/Makefile Makefile \ - po/Makefile.in m4/Makefile dicts/Makefile cracklib.spec) +AC_CONFIG_FILES(util/Makefile lib/Makefile doc/Makefile python/Makefile \ + Makefile po/Makefile.in m4/Makefile dicts/Makefile \ + cracklib.spec lib/packer.h) +AC_OUTPUT diff -up cracklib-2.8.13/lib/packer.h.in cracklib-2.8.13/lib/packer.h.in --- cracklib-2.8.13/lib/packer.h.in 2008-10-28 13:38:25.000000000 -0400 +++ cracklib-2.8.13/lib/packer.h.in 2008-10-28 13:38:25.000000000 -0400 @@ -30,17 +30,8 @@ #define _(String) (String) #endif -#if defined(HAVE_INTTYPES_H) -#include -#else -#if defined(HAVE_STDINT_H) -#include -#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);