platform.h: regularize endian detection
No binary (build failed)
—
(log yok)
| @@ -1,9 +1,9 @@ | |
| /* vi: set sw=4 ts=4: */ | |
| /* | |
| - | Copyright 2006, Bernhard Reutner-Fischer |
| - | |
| - | Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
| - | */ |
| + | * Copyright 2006, Bernhard Reutner-Fischer |
| + | * |
| + | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
| + | */ |
| #ifndef BB_PLATFORM_H | |
| #define BB_PLATFORM_H 1 | |
| @@ -152,33 +152,37 @@ | |
| #if defined(__digital__) && defined(__unix__) | |
| # include <sex.h> | |
| - | # define __BIG_ENDIAN__ (BYTE_ORDER == BIG_ENDIAN) |
| - | # define __BYTE_ORDER BYTE_ORDER |
| - | #elif defined __FreeBSD__ |
| + | #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) \ |
| + | || defined(__APPLE__) |
| # include <sys/resource.h> /* rlimit */ | |
| # include <machine/endian.h> | |
| # define bswap_64 __bswap64 | |
| # define bswap_32 __bswap32 | |
| # define bswap_16 __bswap16 | |
| - | # define __BIG_ENDIAN__ (_BYTE_ORDER == _BIG_ENDIAN) |
| - | #elif !defined __APPLE__ && !defined __OpenBSD__ |
| + | #else |
| # include <byteswap.h> | |
| # include <endian.h> | |
| #endif | |
| - | #if defined(__BIG_ENDIAN__) && __BIG_ENDIAN__ |
| + | #if defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN |
| # define BB_BIG_ENDIAN 1 | |
| # define BB_LITTLE_ENDIAN 0 | |
| - | #elif defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN |
| + | #elif defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN |
| + | # define BB_BIG_ENDIAN 0 |
| + | # define BB_LITTLE_ENDIAN 1 |
| + | #elif defined(_BYTE_ORDER) && _BYTE_ORDER == _BIG_ENDIAN |
| # define BB_BIG_ENDIAN 1 | |
| # define BB_LITTLE_ENDIAN 0 | |
| - | #elif defined(_BYTE_ORDER) && _BYTE_ORDER == _BIG_ENDIAN |
| + | #elif defined(_BYTE_ORDER) && _BYTE_ORDER == _LITTLE_ENDIAN |
| + | # define BB_BIG_ENDIAN 0 |
| + | # define BB_LITTLE_ENDIAN 1 |
| + | #elif defined(BYTE_ORDER) && BYTE_ORDER == BIG_ENDIAN |
| # define BB_BIG_ENDIAN 1 | |
| # define BB_LITTLE_ENDIAN 0 | |
| - | #elif (defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN) || defined(__386__) |
| + | #elif defined(BYTE_ORDER) && BYTE_ORDER == LITTLE_ENDIAN |
| # define BB_BIG_ENDIAN 0 | |
| # define BB_LITTLE_ENDIAN 1 | |
| - | #elif defined(_BYTE_ORDER) && _BYTE_ORDER == _LITTLE_ENDIAN |
| + | #elif defined(__386__) |
| # define BB_BIG_ENDIAN 0 | |
| # define BB_LITTLE_ENDIAN 1 | |
| #else | |
| @@ -236,7 +240,8 @@ typedef uint32_t bb__aliased_uint32_t FIX_ALIASING; | |
| /* ---- Compiler dependent settings ------------------------- */ | |
| #if (defined __digital__ && defined __unix__) \ | |
| - | || defined __APPLE__ || defined __FreeBSD__ || defined __OpenBSD__ |
| + | || defined __APPLE__ \ |
| + | || defined __FreeBSD__ || defined __OpenBSD__ || defined __NetBSD__ |
| # undef HAVE_MNTENT_H | |
| # undef HAVE_SYS_STATFS_H | |
| #else | |