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:
parent
bca5c556c4
commit
445e7543e8
@ -64,12 +64,10 @@
|
|||||||
/* This is a NOEXEC applet. Be very careful! */
|
/* This is a NOEXEC applet. Be very careful! */
|
||||||
|
|
||||||
#if !ENABLE_USE_BB_PWD_GRP
|
#if !ENABLE_USE_BB_PWD_GRP
|
||||||
#if defined(__UCLIBC_MAJOR__) && (__UCLIBC_MAJOR__ == 0)
|
#if defined(__UCLIBC__) && UCLIBC_VERSION < KERNEL_VERSION(0, 9, 30)
|
||||||
#if (__UCLIBC_MINOR__ < 9) || (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 30)
|
|
||||||
#error "Sorry, you need at least uClibc version 0.9.30 for id applet to build"
|
#error "Sorry, you need at least uClibc version 0.9.30 for id applet to build"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
PRINT_REAL = (1 << 0),
|
PRINT_REAL = (1 << 0),
|
||||||
|
@ -263,6 +263,12 @@ typedef unsigned smalluint;
|
|||||||
|
|
||||||
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
|
#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 --------------------------------------- */
|
/* ---- Miscellaneous --------------------------------------- */
|
||||||
|
|
||||||
@ -305,8 +311,9 @@ typedef unsigned smalluint;
|
|||||||
* for a mmu-less system.
|
* for a mmu-less system.
|
||||||
*/
|
*/
|
||||||
#if ENABLE_NOMMU || \
|
#if ENABLE_NOMMU || \
|
||||||
(defined __UCLIBC__ && __UCLIBC_MAJOR__ >= 0 && __UCLIBC_MINOR__ >= 9 && \
|
(defined __UCLIBC__ && \
|
||||||
__UCLIBC_SUBLEVEL__ > 28 && !defined __ARCH_USE_MMU__)
|
UCLIBC_VERSION > KERNEL_VERSION(0, 9, 28) && \
|
||||||
|
!defined __ARCH_USE_MMU__)
|
||||||
# define BB_MMU 0
|
# define BB_MMU 0
|
||||||
# define USE_FOR_NOMMU(...) __VA_ARGS__
|
# define USE_FOR_NOMMU(...) __VA_ARGS__
|
||||||
# define USE_FOR_MMU(...)
|
# define USE_FOR_MMU(...)
|
||||||
@ -373,14 +380,9 @@ typedef unsigned smalluint;
|
|||||||
#define HAVE_NET_ETHERNET_H 1
|
#define HAVE_NET_ETHERNET_H 1
|
||||||
#define HAVE_SYS_STATFS_H 1
|
#define HAVE_SYS_STATFS_H 1
|
||||||
|
|
||||||
#if defined(__UCLIBC_MAJOR__)
|
#if defined(__UCLIBC__) && UCLIBC_VERSION < KERNEL_VERSION(0, 9, 32)
|
||||||
# if __UCLIBC_MAJOR__ == 0 \
|
|
||||||
&& ( __UCLIBC_MINOR__ < 9 \
|
|
||||||
|| (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 32) \
|
|
||||||
)
|
|
||||||
# undef HAVE_STRVERSCMP
|
# undef HAVE_STRVERSCMP
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__dietlibc__)
|
#if defined(__dietlibc__)
|
||||||
# undef HAVE_STRCHRNUL
|
# undef HAVE_STRCHRNUL
|
||||||
|
@ -121,10 +121,7 @@ static void get_dest_addr(const char *hostid, struct ether_addr *eaddr)
|
|||||||
eap = ether_aton_r(hostid, eaddr);
|
eap = ether_aton_r(hostid, eaddr);
|
||||||
if (eap) {
|
if (eap) {
|
||||||
bb_debug_msg("The target station address is %s\n\n", ether_ntoa(eap));
|
bb_debug_msg("The target station address is %s\n\n", ether_ntoa(eap));
|
||||||
#if !defined(__UCLIBC_MAJOR__) \
|
#if !defined(__UCLIBC__) || UCLIBC_VERSION >= KERNEL_VERSION(0, 9, 30)
|
||||||
|| __UCLIBC_MAJOR__ > 0 \
|
|
||||||
|| __UCLIBC_MINOR__ > 9 \
|
|
||||||
|| (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ >= 30)
|
|
||||||
} else if (ether_hostton(hostid, eaddr) == 0) {
|
} else if (ether_hostton(hostid, eaddr) == 0) {
|
||||||
bb_debug_msg("Station address for hostname %s is %s\n\n", hostid, ether_ntoa(eaddr));
|
bb_debug_msg("Station address for hostname %s is %s\n\n", hostid, ether_ntoa(eaddr));
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user