diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-08-16 05:24:40 +0400 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-08-16 05:24:40 +0400 |
commit | 867ffb961672a226ba269b32c5d88a2c56b685fe (patch) | |
tree | 6281a7c05a747bb440190feb2c91ed9934545073 /include/platform.h | |
parent | 9768a82eb0ef8b742034d2b22c32e0cc97633604 (diff) |
platform.h: regularize endian detection
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'include/platform.h')
-rw-r--r-- | include/platform.h | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/include/platform.h b/include/platform.h index 1cc588690..dd41dbc93 100644 --- a/include/platform.h +++ b/include/platform.h @@ -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 |