From 867ffb961672a226ba269b32c5d88a2c56b685fe Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 16 Aug 2010 03:24:40 +0200 Subject: platform.h: regularize endian detection Signed-off-by: Denys Vlasenko --- include/platform.h | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) (limited to 'include/platform.h') 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 -# 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 /* rlimit */ # include # 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 # include #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 -- cgit v1.2.3