Skip to content

Commit df56482

Browse files
Add more byte order detection code
Suggested in https://sourceforge.net/p/predef/wiki/Endianness/ and also found by looking into glibc's <endian.h>. Plus some recommendation from other people. This fixed the build on INTEGRITY. Signed-off-by: Thiago Macieira <[email protected]>
1 parent fac1e57 commit df56482

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/compilersupport_p.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,12 +151,17 @@
151151
/* ntohll isn't usually defined */
152152
# ifndef ntohll
153153
# if (defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) || \
154-
defined(__ARMEB__) || defined(__MIPSEB__) || defined(__sparc__)
154+
(defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && __BYTE_ORDER == __BIG_ENDIAN) || \
155+
(defined(BYTE_ORDER) && defined(BIG_ENDIAN) && BYTE_ORDER == BIG_ENDIAN) || \
156+
(defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)) || (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \
157+
defined(__ARMEB__) || defined(__MIPSEB__) || defined(__s390__) || defined(__sparc__)
155158
# define ntohll
156159
# define htonll
157160
# elif (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || \
158-
defined(__ARMEL__) || defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__) || \
159-
defined(__amd64) || defined(__MIPSEL__)
161+
(defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN) || \
162+
(defined(BYTE_ORDER) && defined(LITTLE_ENDIAN) && BYTE_ORDER == LITTLE_ENDIAN) || \
163+
defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) || defined(__ARMEL__) || defined(__MIPSEL__) || \
164+
defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__) || defined(__amd64)
160165
# define ntohll(x) ((ntohl((uint32_t)(x)) * UINT64_C(0x100000000)) + (ntohl((x) >> 32)))
161166
# define htonll ntohll
162167
# else

0 commit comments

Comments
 (0)