summaryrefslogtreecommitdiff
path: root/cpp/include
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2016-06-08 16:37:00 +0200
committerJose <jose@zeroc.com>2016-06-08 16:37:00 +0200
commitade0180c7fec40374391686003fc84382540a294 (patch)
tree5e966783f14bc1ef5a634a420fe4fd5d78d59649 /cpp/include
parentFix binsuffix so that is only set of x86 builds (diff)
downloadice-ade0180c7fec40374391686003fc84382540a294.tar.bz2
ice-ade0180c7fec40374391686003fc84382540a294.tar.xz
ice-ade0180c7fec40374391686003fc84382540a294.zip
Rework endian/wordsize checks
Diffstat (limited to 'cpp/include')
-rw-r--r--cpp/include/IceUtil/Config.h107
1 files changed, 49 insertions, 58 deletions
diff --git a/cpp/include/IceUtil/Config.h b/cpp/include/IceUtil/Config.h
index 5783d4fd133..ae7c6eec97a 100644
--- a/cpp/include/IceUtil/Config.h
+++ b/cpp/include/IceUtil/Config.h
@@ -15,7 +15,7 @@
// and fallback to architecture based checks.
//
//
-#if defined(__GLIBC__)
+#if defined(__linux)
# include <endian.h>
#elif defined(__APPLE__)
# include <machine/endian.h>
@@ -23,48 +23,43 @@
# include <sys/endian.h>
#endif
+#if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN)) || \
+ (defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN))
-#if defined(__BYTE_ORDER)
-# if defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN)
-# define ICE_LITTLE_ENDIAN
-# elif defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN)
-# define ICE_BIG_ENDIAN
-# endif
-#elif defined(_BYTE_ORDER)
-# if defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN)
-# define ICE_LITTLE_ENDIAN
-# elif defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN)
-# define ICE_BIG_ENDIAN
-# endif
-#else
-# if defined(__i386) || \
- defined(_M_IX86) || \
- defined(__x86_64) || \
- defined(_M_X64) || \
- defined(_M_IA64) || \
- defined(__alpha__) || \
- defined(__ARMEL__) || \
- defined(_M_ARM_FP) || \
- defined(__arm64) || \
- defined(__MIPSEL__) \
-
-# define ICE_LITTLE_ENDIAN
-
-# elif defined(__sparc) || \
- defined(__sparc__) || \
- defined(__hppa) || \
- defined(__ppc__) || \
- defined(__powerpc) || \
- defined(_ARCH_COM) || \
- defined(__MIPSEB__)
-
-# define ICE_BIG_ENDIAN
+# define ICE_LITTLE_ENDIAN
-# else
+#elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN)) || \
+ (defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN))
-# error "Unknown architecture"
+# define ICE_BIG_ENDIAN
+
+#elif defined(__i386) || \
+ defined(_M_IX86) || \
+ defined(__x86_64) || \
+ defined(_M_X64) || \
+ defined(_M_IA64) || \
+ defined(__alpha__) || \
+ defined(__ARMEL__) || \
+ defined(_M_ARM_FP) || \
+ defined(__arm64) || \
+ defined(__MIPSEL__)
+
+# define ICE_LITTLE_ENDIAN
+
+#elif defined(__sparc) || \
+ defined(__sparc__) || \
+ defined(__hppa) || \
+ defined(__ppc__) || \
+ defined(__powerpc) || \
+ defined(_ARCH_COM) || \
+ defined(__MIPSEB__)
+
+# define ICE_BIG_ENDIAN
+
+#else
+
+# error "Unknown architecture"
-# endif
#endif
@@ -74,28 +69,24 @@
//
#include <stdint.h>
-#ifdef __WORDSIZE
-# if (__WORDSIZE == 64)
-# define ICE_64
-# else
-# define ICE_32
-# endif
-#else
-# if defined(__sun) && (defined(__sparcv9) || defined(__x86_64)) || \
- defined(__linux) && defined(__x86_64) || \
- defined(__APPLE__) && defined(__x86_64) || \
- defined(__hppa) && defined(__LP64__) || \
- defined(_ARCH_COM) && defined(__64BIT__) || \
- defined(__alpha__) || \
- defined(_WIN64)
+#if defined(__WORDSIZE) && (__WORDSIZE == 64)
+# define ICE_64
+#elif defined(__WORDSIZE) && (__WORDSIZE == 32)
+# define ICE_32
+#elif defined(__sun) && (defined(__sparcv9) || defined(__x86_64)) || \
+ defined(__linux) && defined(__x86_64) || \
+ defined(__APPLE__) && defined(__x86_64) || \
+ defined(__hppa) && defined(__LP64__) || \
+ defined(_ARCH_COM) && defined(__64BIT__) || \
+ defined(__alpha__) || \
+ defined(_WIN64)
+
+# define ICE_64
-# define ICE_64
-
-# else
+#else
-# define ICE_32
+# define ICE_32
-# endif
#endif
//