--- configure.ac.orig 2015-07-23 06:34:37 UTC +++ configure.ac @@ -322,14 +322,18 @@ public: [AC_MSG_RESULT([no])]) AC_LANG_POP(C++) -AC_CHECK_DECLS([__builtin_bswap64, __builtin_ctz]) - AC_CHECK_DECL([mach_absolute_time], [AC_DEFINE([HAVE_MACH_ABSOLUTE_TIME], [1], [Define if mach_absolute_time is available.])], , [[#include ]]) -AC_CHECK_DECLS([be64toh, betoh64], [], [], + +AC_CHECK_DECLS([__builtin_ctz]) + +AC_CHECK_DECLS([ffs], [], [], + [[#include ]]) + +AC_CHECK_DECLS([be64toh, betoh64, bswap64, __builtin_bswap64], [], [], [[#if defined(HAVE_ENDIAN_H) #include #elif defined(HAVE_SYS_ENDIAN_H) --- src/crypto/ocb.cc.orig 2015-06-26 13:03:41 UTC +++ src/crypto/ocb.cc @@ -72,9 +72,19 @@ /* Includes and compiler specific definitions */ /* ----------------------------------------------------------------------- */ +#include "config.h" #include "ae.h" #include #include +#if defined(HAVE_STRINGS_H) +#include +#endif +#if defined(HAVE_ENDIAN_H) +#include +#elif defined(HAVE_SYS_ENDIAN_H) +#include +#include +#endif /* Define standard sized integers */ #if defined(_MSC_VER) && (_MSC_VER < 1600) @@ -101,6 +111,8 @@ #if _MSC_VER #define bswap64(x) _byteswap_uint64(x) +#elif HAVE_DECL_BSWAP64 + /* nothing */ #elif HAVE_DECL___BUILTIN_BSWAP64 #define bswap64(x) __builtin_bswap64(x) /* GCC 4.3+ */ #else @@ -121,6 +133,8 @@ static inline unsigned ntz(unsigned x) {_BitScanForward(&x,x);return x;} #elif HAVE_DECL___BUILTIN_CTZ #define ntz(x) __builtin_ctz((unsigned)(x)) /* GCC 3.4+ */ +#elif HAVE_DECL_FFS + #define ntz(x) (ffs(x) - 1) #else #if (L_TABLE_SZ <= 9) && (L_TABLE_SZ_IS_ENOUGH) /* < 2^13 byte texts */ static inline unsigned ntz(unsigned x) {