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>
This commit is contained in:
Mike Frysinger
2013-03-12 11:13:22 -04:00
parent bca5c556c4
commit 445e7543e8
3 changed files with 13 additions and 16 deletions

View File

@ -263,6 +263,12 @@ typedef unsigned smalluint;
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#ifdef __UCLIBC__
# define UCLIBC_VERSION KERNEL_VERSION(__UCLIBC_MAJOR__, __UCLIBC_MINOR__, __UCLIBC_SUBLEVEL__)
#else
# define UCLIBC_VERSION 0
#endif
/* ---- Miscellaneous --------------------------------------- */
@ -305,8 +311,9 @@ typedef unsigned smalluint;
* for a mmu-less system.
*/
#if ENABLE_NOMMU || \
(defined __UCLIBC__ && __UCLIBC_MAJOR__ >= 0 && __UCLIBC_MINOR__ >= 9 && \
__UCLIBC_SUBLEVEL__ > 28 && !defined __ARCH_USE_MMU__)
(defined __UCLIBC__ && \
UCLIBC_VERSION > KERNEL_VERSION(0, 9, 28) && \
!defined __ARCH_USE_MMU__)
# define BB_MMU 0
# define USE_FOR_NOMMU(...) __VA_ARGS__
# define USE_FOR_MMU(...)
@ -373,13 +380,8 @@ typedef unsigned smalluint;
#define HAVE_NET_ETHERNET_H 1
#define HAVE_SYS_STATFS_H 1
#if defined(__UCLIBC_MAJOR__)
# if __UCLIBC_MAJOR__ == 0 \
&& ( __UCLIBC_MINOR__ < 9 \
|| (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 32) \
)
# undef HAVE_STRVERSCMP
# endif
#if defined(__UCLIBC__) && UCLIBC_VERSION < KERNEL_VERSION(0, 9, 32)
# undef HAVE_STRVERSCMP
#endif
#if defined(__dietlibc__)