compat/bswap.h: detect endianness from XL C compiler macros
authorDavid Michael <fedora.dm0@gmail.com>
Sun, 26 Oct 2014 17:34:26 +0000 (13:34 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 27 Oct 2014 18:51:12 +0000 (11:51 -0700)
There is no /usr/include/endian.h equivalent on z/OS, but the
compiler will define macros to indicate endianness on host and
target hardware. This adds a test for these macros as a last
resort for determining byte order.

Signed-off-by: David Michael <fedora.dm0@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/bswap.h
index f6fd9a6a6cfdcd723cb5e04efc3af257977e5db5..7fed637ed09648b155441e883302e6b96afb7202 100644 (file)
@@ -122,6 +122,10 @@ static inline uint64_t git_bswap64(uint64_t x)
 #  define GIT_BYTE_ORDER GIT_BIG_ENDIAN
 # elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)
 #  define GIT_BYTE_ORDER GIT_LITTLE_ENDIAN
+# elif defined(__THW_BIG_ENDIAN__) && !defined(__THW_LITTLE_ENDIAN__)
+#  define GIT_BYTE_ORDER GIT_BIG_ENDIAN
+# elif defined(__THW_LITTLE_ENDIAN__) && !defined(__THW_BIG_ENDIAN__)
+#  define GIT_BYTE_ORDER GIT_LITTLE_ENDIAN
 # else
 #  error "Cannot determine endianness"
 # endif