Fix: use the correct endian compat macros
authorMichael Jeanson <mjeanson@efficios.com>
Wed, 16 Mar 2022 15:40:52 +0000 (11:40 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 17 Mar 2022 17:52:17 +0000 (13:52 -0400)
Document which variant of the endian macros our compat header guarantees
across all platforms and fix incorrect uses.

This was discovered with -Wundef on macOS.

Change-Id: Iaf442fe5887063661273ac2a00c9fa4015e83d5c
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/common/compat/endian.h
src/common/hashtable/utils.c

index 652802a67f340ab989309d35a0ad1d743864c950..f57b6d4a4d7d59ebefa1a8b69987f1b2aaf83c21 100644 (file)
@@ -5,6 +5,35 @@
  *
  */
 
+/*
+ * This compat header provides the following defines:
+ *
+ *  LITTLE_ENDIAN
+ *  BIG_ENDIAN
+ *  BYTE_ORDER
+ *
+ * And functions / macros :
+ *
+ *  bswap_16()
+ *  bswap_32()
+ *  bswap_64()
+ *
+ *  htobe16()
+ *  htole16()
+ *  be16toh()
+ *  le16toh()
+ *
+ *  htobe32()
+ *  htole32()
+ *  be32toh()
+ *  le32toh()
+ *
+ *  htobe64()
+ *  htole64()
+ *  be64toh()
+ *  le64toh()
+ */
+
 #ifndef _COMPAT_ENDIAN_H
 #define _COMPAT_ENDIAN_H
 
 
 #define LITTLE_ENDIAN  __LITTLE_ENDIAN
 #define BIG_ENDIAN     __BIG_ENDIAN
-#define PDP_ENDIAN     __PDP_ENDIAN
 #define BYTE_ORDER     __BYTE_ORDER
 
 #define betoh16(x) BE_16(x)
index 5807695638b2dd1a1530804a024f0166b30fb9ea..60ac8c9e6650f2e8c8b11d164fde33b62217b146 100644 (file)
  * My best guess at if you are big-endian or little-endian.  This may
  * need adjustment.
  */
-#if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \
-     __BYTE_ORDER == __LITTLE_ENDIAN) || \
+#if (defined(BYTE_ORDER) && defined(LITTLE_ENDIAN) && \
+     BYTE_ORDER == LITTLE_ENDIAN) || \
     (defined(i386) || defined(__i386__) || defined(__i486__) || \
      defined(__i586__) || defined(__i686__) || defined(vax) || defined(MIPSEL))
 # define HASH_LITTLE_ENDIAN 1
 # define HASH_BIG_ENDIAN 0
-#elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \
-       __BYTE_ORDER == __BIG_ENDIAN) || \
+#elif (defined(BYTE_ORDER) && defined(BIG_ENDIAN) && \
+       BYTE_ORDER == BIG_ENDIAN) || \
       (defined(sparc) || defined(POWERPC) || defined(mc68000) || defined(sel))
 # define HASH_LITTLE_ENDIAN 0
 # define HASH_BIG_ENDIAN 1
This page took 0.026171 seconds and 4 git commands to generate.