From c3e928021f3817ac54973dc54fd6d91d292e55aa Mon Sep 17 00:00:00 2001 From: Kal Conley Date: Tue, 16 Dec 2014 02:30:45 +0100 Subject: Improved little endian byte order detection Including on Mac/iOS doesn't define __BYTE_ORDER so PROTOBUF_LITTLE_ENDIAN was never being defined. This commit adds a check for the __LITTLE_ENDIAN__ macro which is defined by clang and Apple gcc on little endian architectures. --- src/google/protobuf/io/coded_stream.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/google/protobuf/io/coded_stream.h') diff --git a/src/google/protobuf/io/coded_stream.h b/src/google/protobuf/io/coded_stream.h index b9c30fa3..978cc19d 100644 --- a/src/google/protobuf/io/coded_stream.h +++ b/src/google/protobuf/io/coded_stream.h @@ -123,7 +123,8 @@ #endif #else #include // __BYTE_ORDER - #if defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN && \ + #if ((defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \ + (defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN)) && \ !defined(PROTOBUF_DISABLE_LITTLE_ENDIAN_OPT_FOR_TEST) #define PROTOBUF_LITTLE_ENDIAN 1 #endif -- cgit v1.2.3