diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-08-16 03:24:40 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-08-16 03:24:40 +0200 |
commit | 867ffb961672a226ba269b32c5d88a2c56b685fe (patch) | |
tree | 6281a7c05a747bb440190feb2c91ed9934545073 | |
parent | 9768a82eb0ef8b742034d2b22c32e0cc97633604 (diff) | |
download | busybox-w32-867ffb961672a226ba269b32c5d88a2c56b685fe.tar.gz busybox-w32-867ffb961672a226ba269b32c5d88a2c56b685fe.tar.bz2 busybox-w32-867ffb961672a226ba269b32c5d88a2c56b685fe.zip |
platform.h: regularize endian detection
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-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 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | 1 | /* vi: set sw=4 ts=4: */ |
2 | /* | 2 | /* |
3 | Copyright 2006, Bernhard Reutner-Fischer | 3 | * Copyright 2006, Bernhard Reutner-Fischer |
4 | 4 | * | |
5 | Licensed under the GPL v2 or later, see the file LICENSE in this tarball. | 5 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
6 | */ | 6 | */ |
7 | #ifndef BB_PLATFORM_H | 7 | #ifndef BB_PLATFORM_H |
8 | #define BB_PLATFORM_H 1 | 8 | #define BB_PLATFORM_H 1 |
9 | 9 | ||
@@ -152,33 +152,37 @@ | |||
152 | 152 | ||
153 | #if defined(__digital__) && defined(__unix__) | 153 | #if defined(__digital__) && defined(__unix__) |
154 | # include <sex.h> | 154 | # include <sex.h> |
155 | # define __BIG_ENDIAN__ (BYTE_ORDER == BIG_ENDIAN) | 155 | #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) \ |
156 | # define __BYTE_ORDER BYTE_ORDER | 156 | || defined(__APPLE__) |
157 | #elif defined __FreeBSD__ | ||
158 | # include <sys/resource.h> /* rlimit */ | 157 | # include <sys/resource.h> /* rlimit */ |
159 | # include <machine/endian.h> | 158 | # include <machine/endian.h> |
160 | # define bswap_64 __bswap64 | 159 | # define bswap_64 __bswap64 |
161 | # define bswap_32 __bswap32 | 160 | # define bswap_32 __bswap32 |
162 | # define bswap_16 __bswap16 | 161 | # define bswap_16 __bswap16 |
163 | # define __BIG_ENDIAN__ (_BYTE_ORDER == _BIG_ENDIAN) | 162 | #else |
164 | #elif !defined __APPLE__ && !defined __OpenBSD__ | ||
165 | # include <byteswap.h> | 163 | # include <byteswap.h> |
166 | # include <endian.h> | 164 | # include <endian.h> |
167 | #endif | 165 | #endif |
168 | 166 | ||
169 | #if defined(__BIG_ENDIAN__) && __BIG_ENDIAN__ | 167 | #if defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN |
170 | # define BB_BIG_ENDIAN 1 | 168 | # define BB_BIG_ENDIAN 1 |
171 | # define BB_LITTLE_ENDIAN 0 | 169 | # define BB_LITTLE_ENDIAN 0 |
172 | #elif defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN | 170 | #elif defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN |
171 | # define BB_BIG_ENDIAN 0 | ||
172 | # define BB_LITTLE_ENDIAN 1 | ||
173 | #elif defined(_BYTE_ORDER) && _BYTE_ORDER == _BIG_ENDIAN | ||
173 | # define BB_BIG_ENDIAN 1 | 174 | # define BB_BIG_ENDIAN 1 |
174 | # define BB_LITTLE_ENDIAN 0 | 175 | # define BB_LITTLE_ENDIAN 0 |
175 | #elif defined(_BYTE_ORDER) && _BYTE_ORDER == _BIG_ENDIAN | 176 | #elif defined(_BYTE_ORDER) && _BYTE_ORDER == _LITTLE_ENDIAN |
177 | # define BB_BIG_ENDIAN 0 | ||
178 | # define BB_LITTLE_ENDIAN 1 | ||
179 | #elif defined(BYTE_ORDER) && BYTE_ORDER == BIG_ENDIAN | ||
176 | # define BB_BIG_ENDIAN 1 | 180 | # define BB_BIG_ENDIAN 1 |
177 | # define BB_LITTLE_ENDIAN 0 | 181 | # define BB_LITTLE_ENDIAN 0 |
178 | #elif (defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN) || defined(__386__) | 182 | #elif defined(BYTE_ORDER) && BYTE_ORDER == LITTLE_ENDIAN |
179 | # define BB_BIG_ENDIAN 0 | 183 | # define BB_BIG_ENDIAN 0 |
180 | # define BB_LITTLE_ENDIAN 1 | 184 | # define BB_LITTLE_ENDIAN 1 |
181 | #elif defined(_BYTE_ORDER) && _BYTE_ORDER == _LITTLE_ENDIAN | 185 | #elif defined(__386__) |
182 | # define BB_BIG_ENDIAN 0 | 186 | # define BB_BIG_ENDIAN 0 |
183 | # define BB_LITTLE_ENDIAN 1 | 187 | # define BB_LITTLE_ENDIAN 1 |
184 | #else | 188 | #else |
@@ -236,7 +240,8 @@ typedef uint32_t bb__aliased_uint32_t FIX_ALIASING; | |||
236 | /* ---- Compiler dependent settings ------------------------- */ | 240 | /* ---- Compiler dependent settings ------------------------- */ |
237 | 241 | ||
238 | #if (defined __digital__ && defined __unix__) \ | 242 | #if (defined __digital__ && defined __unix__) \ |
239 | || defined __APPLE__ || defined __FreeBSD__ || defined __OpenBSD__ | 243 | || defined __APPLE__ \ |
244 | || defined __FreeBSD__ || defined __OpenBSD__ || defined __NetBSD__ | ||
240 | # undef HAVE_MNTENT_H | 245 | # undef HAVE_MNTENT_H |
241 | # undef HAVE_SYS_STATFS_H | 246 | # undef HAVE_SYS_STATFS_H |
242 | #else | 247 | #else |