|
2 | 2 |
|
3 | 3 | #if defined(__linux__) || defined(__CYGWIN__)
|
4 | 4 | #include <endian.h>
|
5 |
| -#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) |
6 |
| -#include <sys/endian.h> |
7 |
| -#elif defined(__DragonFly__) |
| 5 | +#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \ |
| 6 | + || defined(__DragonFly__) |
8 | 7 | #include <sys/endian.h>
|
9 | 8 | #elif defined(__APPLE__)
|
10 | 9 | #include <libkern/OSByteOrder.h>
|
11 |
| -#define __BYTE_ORDER BYTE_ORDER |
12 |
| -#define __BIG_ENDIAN BIG_ENDIAN |
13 |
| -#define __LITTLE_ENDIAN LITTLE_ENDIAN |
14 | 10 | #elif defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
|
15 | 11 | /* Assume Windows is always LE. There seems to be no reliable way
|
16 | 12 | to detect endianness there */
|
17 | 13 | #define __LITTLE_ENDIAN 1234
|
18 | 14 | #define __BIG_ENDIAN 4321
|
19 | 15 | #define __BYTE_ORDER __LITTLE_ENDIAN
|
20 |
| -#else |
21 |
| -#error Cannot determine platform byte order. |
22 | 16 | #endif
|
23 | 17 |
|
| 18 | +#if defined(_BYTE_ORDER) && !defined(__BYTE_ORDER) |
| 19 | +#define __BYTE_ORDER _BYTE_ORDER |
| 20 | +#endif |
| 21 | + |
| 22 | +#if defined(BYTE_ORDER) && !defined(__BYTE_ORDER) |
| 23 | +#define __BYTE_ORDER BYTE_ORDER |
| 24 | +#endif |
| 25 | + |
| 26 | +#if defined(_LITTLE_ENDIAN) && !defined(__LITTLE_ENDIAN) |
| 27 | +#define __LITTLE_ENDIAN _LITTLE_ENDIAN |
| 28 | +#endif |
| 29 | + |
| 30 | +#if defined(LITTLE_ENDIAN) && !defined(__LITTLE_ENDIAN) |
| 31 | +#define __LITTLE_ENDIAN LITTLE_ENDIAN |
| 32 | +#endif |
| 33 | + |
| 34 | +#if defined(_BIG_ENDIAN) && !defined(__BIG_ENDIAN) |
| 35 | +#define __BIG_ENDIAN _BIG_ENDIAN |
| 36 | +#endif |
| 37 | + |
| 38 | +#if defined(BIG_ENDIAN) && !defined(__BIG_ENDIAN) |
| 39 | +#define __BIG_ENDIAN BIG_ENDIAN |
| 40 | +#endif |
| 41 | + |
| 42 | +#if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) \ |
| 43 | + || !defined(__BIG_ENDIAN) |
| 44 | +#error Cannot determine platform byte order. |
| 45 | +#endif |
24 | 46 |
|
25 | 47 | #if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
|
26 | 48 |
|
|
0 commit comments