/* Byte swap a 64-bit number. */
static inline uint64_t swap64(uint64_t in)
{
-#ifndef BYTEORDER_BIG_ENDIAN
+#ifndef WORDS_BIGENDIAN
/* Little endian, flip the bytes around until someone makes a faster/better
* way to do this. */
uint64_t rv= 0;
a = b = c = 0xdeadbeef + ((uint32_t)length) + initval;
u.ptr = key;
-#ifdef BYTEORDER_LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
if ((u.i & 0x3) == 0)
{
const uint32_t *k = (const uint32_t *)key; /* read 32-bit chunks */
case 0 : return c;
default : return c;
}
-#ifdef BYTEORDER_LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
}
#endif
AC_DEFUN([DETECT_BYTEORDER],
[
- AC_MSG_CHECKING([for htonll])
- have_htoll="no"
+ AC_REQUIRE([AC_C_BIGENDIAN])
+ AC_CACHE_CHECK([for htonll],[av_cv_have_htonll],[
+
AC_RUN_IFELSE([
- AC_LANG_PROGRAM([
+ AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <netinet/in.h>
#include <inttypes.h>
- ], [
+ ]],[[
return htonll(0);
- ])
+ ]])
], [
- have_htoll="yes"
- AC_DEFINE([HAVE_HTONLL], [1], [Have ntohll])
- ])
+ ac_cv_have_htonll=yes
+ ],[
+ ac_cv_have_htonll=no
+ ])])
- AC_MSG_RESULT([$have_htoll])
- AM_CONDITIONAL([BUILD_BYTEORDER],[test "x$have_htoll" = "xno"])
- AC_MSG_CHECKING([byteorder])
- have_htoll="no"
- AC_RUN_IFELSE([
- AC_LANG_PROGRAM([
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <inttypes.h>
- ], [
-if (htonl(5) != 5) {
- return 1;
-}
- ])
- ], [
- AC_MSG_RESULT([big endian])
- AC_DEFINE([BYTEORDER_BIG_ENDIAN], [1], [Enable big endian byteorder])
- ], [
- AC_MSG_RESULT([little endian])
- AC_DEFINE([BYTEORDER_LITTLE_ENDIAN], [1], [Enable little endian byteorder])
- ])
+ AS_IF([test "x$ac_cv_have_htonll" = "xyes"],[
+ AC_DEFINE([HAVE_HTONLL], [1], [Have ntohll])])
+
+ AM_CONDITIONAL([BUILD_BYTEORDER],[test "x$ac_cv_have_htonll" = "xno"])
])