Update how we detect if libc5 is in use.
authorEric Andersen <andersen@codepoet.org>
Mon, 9 Apr 2001 23:52:18 +0000 (23:52 -0000)
committerEric Andersen <andersen@codepoet.org>
Mon, 9 Apr 2001 23:52:18 +0000 (23:52 -0000)
 -Erik

15 files changed:
chmod_chown_chgrp.c
dutmp.c
include/libbb.h
init.c
init/init.c
interface.c
libbb/daemon.c
libbb/libbb.h
logread.c
miscutils/dutmp.c
miscutils/update.c
networking/ping.c
ping.c
sysklogd/logread.c
update.c

index 4fc9869..9714e1c 100644 (file)
@@ -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 a75a6e3..26253b4 100644 (file)
--- 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,
index 0001cac..6133b19 100644 (file)
@@ -34,9 +34,8 @@
 #endif
 
 #include <features.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
 /* 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 bf992b5..6194218 100644 (file)
--- 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 <sys/reboot.h>
+
+#if __GNU_LIBRARY__ > 5
+  #include <sys/reboot.h>
   #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 <sys/kdaemon.h>
+#if __GNU_LIBRARY__ > 5
+       #include <sys/kdaemon.h>
 #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 */
index bf992b5..6194218 100644 (file)
@@ -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 <sys/reboot.h>
+
+#if __GNU_LIBRARY__ > 5
+  #include <sys/reboot.h>
   #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 <sys/kdaemon.h>
+#if __GNU_LIBRARY__ > 5
+       #include <sys/kdaemon.h>
 #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 */
index a80cd55..a043d72 100644 (file)
@@ -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, <waltje@uwalt.nl.mugnet.org>
  *              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 <netipx/ipx.h>
 #else
 #include "ipx.h"
index 55a776c..6d4169e 100644 (file)
@@ -32,9 +32,7 @@
 #include <unistd.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
 
 int daemon( int nochdir, int noclose )
 {
index 0001cac..6133b19 100644 (file)
@@ -34,9 +34,8 @@
 #endif
 
 #include <features.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
 /* libc5 doesn't define socklen_t */
 typedef unsigned int socklen_t;
 /* libc5 doesn't implement BSD 4.4 daemon() */
index 19e8aef..d334962 100644 (file)
--- a/logread.c
+++ b/logread.c
@@ -35,9 +35,7 @@
 #include <setjmp.h>
 #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 
index a75a6e3..26253b4 100644 (file)
@@ -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,
index ce2b6cf..a6550b0 100644 (file)
 #include <unistd.h> /* for getopt() */
 #include <stdlib.h>
 
-#if defined(__GLIBC__)
-#include <sys/kdaemon.h>
+#if __GNU_LIBRARY__ > 5
+       #include <sys/kdaemon.h>
 #else
-extern int bdflush (int func, long int data);
-#endif                                                 /* __GLIBC__ */
+       extern int bdflush (int func, long int data);
+#endif
 
 #include "busybox.h"
 
index 8ac9630..8b82dca 100644 (file)
@@ -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 <tausq@debian.org>
@@ -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 8ac9630..8b82dca 100644 (file)
--- 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 <tausq@debian.org>
@@ -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
index 19e8aef..d334962 100644 (file)
@@ -35,9 +35,7 @@
 #include <setjmp.h>
 #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 
index ce2b6cf..a6550b0 100644 (file)
--- a/update.c
+++ b/update.c
 #include <unistd.h> /* for getopt() */
 #include <stdlib.h>
 
-#if defined(__GLIBC__)
-#include <sys/kdaemon.h>
+#if __GNU_LIBRARY__ > 5
+       #include <sys/kdaemon.h>
 #else
-extern int bdflush (int func, long int data);
-#endif                                                 /* __GLIBC__ */
+       extern int bdflush (int func, long int data);
+#endif
 
 #include "busybox.h"