diff options
author | Mike Frysinger <vapier@gentoo.org> | 2013-03-12 11:13:22 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2013-03-12 11:13:22 -0400 |
commit | 445e7543e80d629173d96a77fbfe228fe795cb88 (patch) | |
tree | 8cff682c57f9767dd77bcca26f48a750be99bb2a /include/platform.h | |
parent | bca5c556c43ced7b368fdd90a24e4aecf40045ac (diff) | |
download | busybox-w32-445e7543e80d629173d96a77fbfe228fe795cb88.tar.gz busybox-w32-445e7543e80d629173d96a77fbfe228fe795cb88.tar.bz2 busybox-w32-445e7543e80d629173d96a77fbfe228fe795cb88.zip |
platform: use KERNEL_VERSION to simplify uClibc version checking
This makes reading the logic (as well as adding new code) a lot simpler,
and fixes one or two cases that were broken due to incorrect sub-version
tests.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'include/platform.h')
-rw-r--r-- | include/platform.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/include/platform.h b/include/platform.h index f4deb30c0..917d87dd6 100644 --- a/include/platform.h +++ b/include/platform.h | |||
@@ -263,6 +263,12 @@ typedef unsigned smalluint; | |||
263 | 263 | ||
264 | #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) | 264 | #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) |
265 | 265 | ||
266 | #ifdef __UCLIBC__ | ||
267 | # define UCLIBC_VERSION KERNEL_VERSION(__UCLIBC_MAJOR__, __UCLIBC_MINOR__, __UCLIBC_SUBLEVEL__) | ||
268 | #else | ||
269 | # define UCLIBC_VERSION 0 | ||
270 | #endif | ||
271 | |||
266 | 272 | ||
267 | /* ---- Miscellaneous --------------------------------------- */ | 273 | /* ---- Miscellaneous --------------------------------------- */ |
268 | 274 | ||
@@ -305,8 +311,9 @@ typedef unsigned smalluint; | |||
305 | * for a mmu-less system. | 311 | * for a mmu-less system. |
306 | */ | 312 | */ |
307 | #if ENABLE_NOMMU || \ | 313 | #if ENABLE_NOMMU || \ |
308 | (defined __UCLIBC__ && __UCLIBC_MAJOR__ >= 0 && __UCLIBC_MINOR__ >= 9 && \ | 314 | (defined __UCLIBC__ && \ |
309 | __UCLIBC_SUBLEVEL__ > 28 && !defined __ARCH_USE_MMU__) | 315 | UCLIBC_VERSION > KERNEL_VERSION(0, 9, 28) && \ |
316 | !defined __ARCH_USE_MMU__) | ||
310 | # define BB_MMU 0 | 317 | # define BB_MMU 0 |
311 | # define USE_FOR_NOMMU(...) __VA_ARGS__ | 318 | # define USE_FOR_NOMMU(...) __VA_ARGS__ |
312 | # define USE_FOR_MMU(...) | 319 | # define USE_FOR_MMU(...) |
@@ -373,13 +380,8 @@ typedef unsigned smalluint; | |||
373 | #define HAVE_NET_ETHERNET_H 1 | 380 | #define HAVE_NET_ETHERNET_H 1 |
374 | #define HAVE_SYS_STATFS_H 1 | 381 | #define HAVE_SYS_STATFS_H 1 |
375 | 382 | ||
376 | #if defined(__UCLIBC_MAJOR__) | 383 | #if defined(__UCLIBC__) && UCLIBC_VERSION < KERNEL_VERSION(0, 9, 32) |
377 | # if __UCLIBC_MAJOR__ == 0 \ | 384 | # undef HAVE_STRVERSCMP |
378 | && ( __UCLIBC_MINOR__ < 9 \ | ||
379 | || (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 32) \ | ||
380 | ) | ||
381 | # undef HAVE_STRVERSCMP | ||
382 | # endif | ||
383 | #endif | 385 | #endif |
384 | 386 | ||
385 | #if defined(__dietlibc__) | 387 | #if defined(__dietlibc__) |