|
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