From b6b519b416189202d18d888d61d8bbe50dc30325 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Mon, 9 Apr 2001 23:52:18 +0000 Subject: [PATCH] Update how we detect if libc5 is in use. -Erik --- chmod_chown_chgrp.c | 1 + dutmp.c | 9 ++++----- include/libbb.h | 5 ++--- init.c | 14 +++++++------- init/init.c | 14 +++++++------- interface.c | 4 ++-- libbb/daemon.c | 4 +--- libbb/libbb.h | 5 ++--- logread.c | 4 +--- miscutils/dutmp.c | 9 ++++----- miscutils/update.c | 8 ++++---- networking/ping.c | 4 ++-- ping.c | 4 ++-- sysklogd/logread.c | 4 +--- update.c | 8 ++++---- 15 files changed, 44 insertions(+), 53 deletions(-) diff --git a/chmod_chown_chgrp.c b/chmod_chown_chgrp.c index 4fc986904..9714e1ca5 100644 --- a/chmod_chown_chgrp.c +++ b/chmod_chown_chgrp.c @@ -49,6 +49,7 @@ static int fileAction(const char *fileName, struct stat *statbuf, void* junk) switch (whichApp) { case CHGRP_APP: case CHOWN_APP: + /* Don't use lchown for libc5 or glibc older then 2.1.x */ #if (__GLIBC__ >= 2) && (__GLIBC_MINOR__ >= 1) if (lchown (fileName, (whichApp == CHOWN_APP) ? uid : statbuf->st_uid, diff --git a/dutmp.c b/dutmp.c index a75a6e392..26253b445 100644 --- a/dutmp.c +++ b/dutmp.c @@ -41,11 +41,9 @@ extern int dutmp_main(int argc, char **argv) } } -/* Kludge around the fact that the binary format for utmp has changed, and the - * fact the stupid libc doesn't have a reliable #define to announce that libc5 - * is being used. sigh. - */ -#if ! defined __GLIBC__ || defined __UCLIBC__ +/* Kludge around the fact that the binary format for utmp has changed. */ +#if __GNU_LIBRARY__ < 5 + /* Linux libc5 */ while (read(file, (void*)&ut, sizeof(struct utmp))) { printf("%d|%d|%s|%s|%s|%s|%s|%lx\n", ut.ut_type, ut.ut_pid, ut.ut_line, @@ -54,6 +52,7 @@ extern int dutmp_main(int argc, char **argv) (long)ut.ut_addr); } #else + /* Glibc, uClibc, etc */ while (read(file, (void*)&ut, sizeof(struct utmp))) { printf("%d|%d|%s|%s|%s|%s|%d|%d|%ld|%ld|%ld|%x\n", ut.ut_type, ut.ut_pid, ut.ut_line, diff --git a/include/libbb.h b/include/libbb.h index 0001cac6f..6133b19d3 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -34,9 +34,8 @@ #endif #include -/* Stupid libc doesn't have a reliable way for use to know - * that libc5 is being used. Assume this is good enough */ -#if ! defined __GLIBC__ && ! defined __UCLIBC__ + +#if __GNU_LIBRARY__ < 5 /* libc5 doesn't define socklen_t */ typedef unsigned int socklen_t; /* libc5 doesn't implement BSD 4.4 daemon() */ diff --git a/init.c b/init.c index bf992b52c..619421891 100644 --- a/init.c +++ b/init.c @@ -85,13 +85,13 @@ static const int RB_ENABLE_CAD = 0x89abcdef; static const int RB_DISABLE_CAD = 0; #define RB_POWER_OFF 0x4321fedc static const int RB_AUTOBOOT = 0x01234567; -#if defined(__GLIBC__) || defined (__UCLIBC__) -#include + +#if __GNU_LIBRARY__ > 5 + #include #define init_reboot(magic) reboot(magic) #else #define init_reboot(magic) reboot(0xfee1dead, 672274793, magic) #endif -#endif #ifndef _PATH_STDPATH #define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin" @@ -112,11 +112,11 @@ static const int RB_AUTOBOOT = 0x01234567; #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) -#if defined(__GLIBC__) -#include +#if __GNU_LIBRARY__ > 5 + #include #else -extern int bdflush (int func, long int data); -#endif /* __GLIBC__ */ + extern int bdflush (int func, long int data); +#endif #define VT_PRIMARY "/dev/tty1" /* Primary virtual console */ diff --git a/init/init.c b/init/init.c index bf992b52c..619421891 100644 --- a/init/init.c +++ b/init/init.c @@ -85,13 +85,13 @@ static const int RB_ENABLE_CAD = 0x89abcdef; static const int RB_DISABLE_CAD = 0; #define RB_POWER_OFF 0x4321fedc static const int RB_AUTOBOOT = 0x01234567; -#if defined(__GLIBC__) || defined (__UCLIBC__) -#include + +#if __GNU_LIBRARY__ > 5 + #include #define init_reboot(magic) reboot(magic) #else #define init_reboot(magic) reboot(0xfee1dead, 672274793, magic) #endif -#endif #ifndef _PATH_STDPATH #define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin" @@ -112,11 +112,11 @@ static const int RB_AUTOBOOT = 0x01234567; #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) -#if defined(__GLIBC__) -#include +#if __GNU_LIBRARY__ > 5 + #include #else -extern int bdflush (int func, long int data); -#endif /* __GLIBC__ */ + extern int bdflush (int func, long int data); +#endif #define VT_PRIMARY "/dev/tty1" /* Primary virtual console */ diff --git a/interface.c b/interface.c index a80cd5524..a043d7223 100644 --- a/interface.c +++ b/interface.c @@ -3,7 +3,7 @@ * that either displays or sets the characteristics of * one or more of the system's networking interfaces. * - * Version: $Id: interface.c,v 1.5 2001/03/15 15:37:48 mjn3 Exp $ + * Version: $Id: interface.c,v 1.6 2001/04/09 23:52:18 andersen Exp $ * * Author: Fred N. van Kempen, * and others. Copyright 1993 MicroWalt Corporation @@ -115,7 +115,7 @@ struct in6_ifreq { #endif /* HAVE_AFINET6 */ #if HAVE_AFIPX -#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) +#if (__GLIBC__ >= 2) && (__GLIBC_MINOR__ >= 1) #include #else #include "ipx.h" diff --git a/libbb/daemon.c b/libbb/daemon.c index 55a776ce0..6d4169ed5 100644 --- a/libbb/daemon.c +++ b/libbb/daemon.c @@ -32,9 +32,7 @@ #include -/* Stupid libc doesn't have a reliable way for use to know - * that libc5 is being used. Assume this is good enough */ -#if ! defined __GLIBC__ && ! defined __UCLIBC__ +#if __GNU_LIBRARY__ < 5 int daemon( int nochdir, int noclose ) { diff --git a/libbb/libbb.h b/libbb/libbb.h index 0001cac6f..6133b19d3 100644 --- a/libbb/libbb.h +++ b/libbb/libbb.h @@ -34,9 +34,8 @@ #endif #include -/* Stupid libc doesn't have a reliable way for use to know - * that libc5 is being used. Assume this is good enough */ -#if ! defined __GLIBC__ && ! defined __UCLIBC__ + +#if __GNU_LIBRARY__ < 5 /* libc5 doesn't define socklen_t */ typedef unsigned int socklen_t; /* libc5 doesn't implement BSD 4.4 daemon() */ diff --git a/logread.c b/logread.c index 19e8aefa6..d3349625c 100644 --- a/logread.c +++ b/logread.c @@ -35,9 +35,7 @@ #include #include "busybox.h" -/* Stupid libc doesn't have a reliable way for use to know - * that libc5 is being used. Assume this is good enough */ -#if ! defined __GLIBC__ && ! defined __UCLIBC__ +#if __GNU_LIBRARY__ < 5 #error Sorry. Looks like you are using libc5. #error libc5 shm support isnt good enough. #error Please disable BB_FEATURE_IPC_SYSLOG diff --git a/miscutils/dutmp.c b/miscutils/dutmp.c index a75a6e392..26253b445 100644 --- a/miscutils/dutmp.c +++ b/miscutils/dutmp.c @@ -41,11 +41,9 @@ extern int dutmp_main(int argc, char **argv) } } -/* Kludge around the fact that the binary format for utmp has changed, and the - * fact the stupid libc doesn't have a reliable #define to announce that libc5 - * is being used. sigh. - */ -#if ! defined __GLIBC__ || defined __UCLIBC__ +/* Kludge around the fact that the binary format for utmp has changed. */ +#if __GNU_LIBRARY__ < 5 + /* Linux libc5 */ while (read(file, (void*)&ut, sizeof(struct utmp))) { printf("%d|%d|%s|%s|%s|%s|%s|%lx\n", ut.ut_type, ut.ut_pid, ut.ut_line, @@ -54,6 +52,7 @@ extern int dutmp_main(int argc, char **argv) (long)ut.ut_addr); } #else + /* Glibc, uClibc, etc */ while (read(file, (void*)&ut, sizeof(struct utmp))) { printf("%d|%d|%s|%s|%s|%s|%d|%d|%ld|%ld|%ld|%x\n", ut.ut_type, ut.ut_pid, ut.ut_line, diff --git a/miscutils/update.c b/miscutils/update.c index ce2b6cf08..a6550b05c 100644 --- a/miscutils/update.c +++ b/miscutils/update.c @@ -33,11 +33,11 @@ #include /* for getopt() */ #include -#if defined(__GLIBC__) -#include +#if __GNU_LIBRARY__ > 5 + #include #else -extern int bdflush (int func, long int data); -#endif /* __GLIBC__ */ + extern int bdflush (int func, long int data); +#endif #include "busybox.h" diff --git a/networking/ping.c b/networking/ping.c index 8ac963076..8b82dcaac 100644 --- a/networking/ping.c +++ b/networking/ping.c @@ -1,6 +1,6 @@ /* vi: set sw=4 ts=4: */ /* - * $Id: ping.c,v 1.39 2001/03/14 01:23:07 andersen Exp $ + * $Id: ping.c,v 1.40 2001/04/09 23:52:18 andersen Exp $ * Mini ping implementation for busybox * * Copyright (C) 1999 by Randolph Chung @@ -54,7 +54,7 @@ /* It turns out that libc5 doesn't have proper icmp support * built into it header files, so we have to supplement it */ -#if ! defined __GLIBC__ && ! defined __UCLIBC__ +#if __GNU_LIBRARY__ < 5 static const int ICMP_MINLEN = 8; /* abs minimum */ struct icmp_ra_addr diff --git a/ping.c b/ping.c index 8ac963076..8b82dcaac 100644 --- a/ping.c +++ b/ping.c @@ -1,6 +1,6 @@ /* vi: set sw=4 ts=4: */ /* - * $Id: ping.c,v 1.39 2001/03/14 01:23:07 andersen Exp $ + * $Id: ping.c,v 1.40 2001/04/09 23:52:18 andersen Exp $ * Mini ping implementation for busybox * * Copyright (C) 1999 by Randolph Chung @@ -54,7 +54,7 @@ /* It turns out that libc5 doesn't have proper icmp support * built into it header files, so we have to supplement it */ -#if ! defined __GLIBC__ && ! defined __UCLIBC__ +#if __GNU_LIBRARY__ < 5 static const int ICMP_MINLEN = 8; /* abs minimum */ struct icmp_ra_addr diff --git a/sysklogd/logread.c b/sysklogd/logread.c index 19e8aefa6..d3349625c 100644 --- a/sysklogd/logread.c +++ b/sysklogd/logread.c @@ -35,9 +35,7 @@ #include #include "busybox.h" -/* Stupid libc doesn't have a reliable way for use to know - * that libc5 is being used. Assume this is good enough */ -#if ! defined __GLIBC__ && ! defined __UCLIBC__ +#if __GNU_LIBRARY__ < 5 #error Sorry. Looks like you are using libc5. #error libc5 shm support isnt good enough. #error Please disable BB_FEATURE_IPC_SYSLOG diff --git a/update.c b/update.c index ce2b6cf08..a6550b05c 100644 --- a/update.c +++ b/update.c @@ -33,11 +33,11 @@ #include /* for getopt() */ #include -#if defined(__GLIBC__) -#include +#if __GNU_LIBRARY__ > 5 + #include #else -extern int bdflush (int func, long int data); -#endif /* __GLIBC__ */ + extern int bdflush (int func, long int data); +#endif #include "busybox.h" -- 2.25.1