Made the byteorder test use standard endian test AC_C_BIGENDIAN.
authorMonty Taylor <mordred@inaugust.com>
Wed, 2 Dec 2009 03:09:57 +0000 (21:09 -0600)
committerMonty Taylor <mordred@inaugust.com>
Wed, 2 Dec 2009 03:09:57 +0000 (21:09 -0600)
libmemcached/byteorder.c
libmemcached/jenkins_hash.c
m4/byteorder.m4

index 5b1cf88bc8d0090a2ac9840783791c9cec861a20..24f8e8c6e88e1e13be7595325dd51c7f8b266c76 100644 (file)
@@ -3,7 +3,7 @@
 /* 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;
index e84cf3edefc0af9c829f792e933e4dfe60611cd4..e4aa4f19da0b4535535260516ed0c670c43679a5 100644 (file)
@@ -63,7 +63,7 @@ uint32_t jenkins_hash(const void *key, size_t length, uint32_t initval)
   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 */
@@ -202,7 +202,7 @@ uint32_t jenkins_hash(const void *key, size_t length, uint32_t initval)
     case 0 : return c;
     default : return c;
     }
-#ifdef BYTEORDER_LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
   }
 #endif
 
index 7d2c99ba5d2b0e901b4523995b891ec53517922d..4692bbd205c44a9fe3719e4a534169272b10de15 100644 (file)
@@ -1,40 +1,25 @@
 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"])
 ])