platform: use KERNEL_VERSION to simplify uClibc version checking
No binary (build failed)
—
(log yok)
| @@ -64,12 +64,10 @@ | |
| /* This is a NOEXEC applet. Be very careful! */ | |
| #if !ENABLE_USE_BB_PWD_GRP | |
| - | #if defined(__UCLIBC_MAJOR__) && (__UCLIBC_MAJOR__ == 0) |
| - | #if (__UCLIBC_MINOR__ < 9) || (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 30) |
| + | #if defined(__UCLIBC__) && UCLIBC_VERSION < KERNEL_VERSION(0, 9, 30) |
| #error "Sorry, you need at least uClibc version 0.9.30 for id applet to build" | |
| #endif | |
| #endif | |
| - | #endif |
| enum { | |
| PRINT_REAL = (1 << 0), | |
| @@ -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__) | |
| @@ -121,10 +121,7 @@ static void get_dest_addr(const char *hostid, struct ether_addr *eaddr) | |
| eap = ether_aton_r(hostid, eaddr); | |
| if (eap) { | |
| bb_debug_msg("The target station address is %s\n\n", ether_ntoa(eap)); | |
| - | #if !defined(__UCLIBC_MAJOR__) \ |
| - | || __UCLIBC_MAJOR__ > 0 \ |
| - | || __UCLIBC_MINOR__ > 9 \ |
| - | || (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ >= 30) |
| + | #if !defined(__UCLIBC__) || UCLIBC_VERSION >= KERNEL_VERSION(0, 9, 30) |
| } else if (ether_hostton(hostid, eaddr) == 0) { | |
| bb_debug_msg("Station address for hostname %s is %s\n\n", hostid, ether_ntoa(eaddr)); | |
| #endif | |