diff options
| author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2003-07-22 08:56:55 +0000 |
|---|---|---|
| committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2003-07-22 08:56:55 +0000 |
| commit | fa8cf20631cf02ae3e6b0db95a494261df1aee27 (patch) | |
| tree | 9971c6951256dd0bba5ff2a7db08ed6f65ef218d | |
| parent | 5658fe5f7869ce987e25dfb6554db5e062045319 (diff) | |
| download | busybox-w32-fa8cf20631cf02ae3e6b0db95a494261df1aee27.tar.gz busybox-w32-fa8cf20631cf02ae3e6b0db95a494261df1aee27.tar.bz2 busybox-w32-fa8cf20631cf02ae3e6b0db95a494261df1aee27.zip | |
Remove remaining libc5 support code
git-svn-id: svn://busybox.net/trunk/busybox@7090 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -rw-r--r-- | coreutils/chgrp.c | 2 | ||||
| -rw-r--r-- | coreutils/chown.c | 2 | ||||
| -rw-r--r-- | include/busybox.h | 17 | ||||
| -rw-r--r-- | include/libbb.h | 12 | ||||
| -rw-r--r-- | init/init.c | 8 | ||||
| -rw-r--r-- | init/reboot.c | 13 | ||||
| -rw-r--r-- | libbb/Makefile.in | 4 | ||||
| -rw-r--r-- | libbb/dirname.c | 69 | ||||
| -rw-r--r-- | libbb/interface.c | 7 | ||||
| -rw-r--r-- | libbb/libc5.c | 184 | ||||
| -rw-r--r-- | libbb/module_syscalls.c | 10 | ||||
| -rw-r--r-- | libbb/syscalls.c | 10 | ||||
| -rw-r--r-- | libpwdgrp/setgroups.c | 11 | ||||
| -rw-r--r-- | miscutils/adjtimex.c | 7 | ||||
| -rw-r--r-- | miscutils/dutmp.c | 17 | ||||
| -rw-r--r-- | miscutils/update.c | 7 | ||||
| -rw-r--r-- | modutils/insmod.c | 6 | ||||
| -rw-r--r-- | networking/ping.c | 81 | ||||
| -rw-r--r-- | networking/traceroute.c | 91 | ||||
| -rw-r--r-- | networking/wget.c | 15 | ||||
| -rw-r--r-- | shell/cmdedit.c | 5 | ||||
| -rw-r--r-- | sysklogd/klogd.c | 9 | ||||
| -rw-r--r-- | sysklogd/logread.c | 7 | ||||
| -rw-r--r-- | sysklogd/syslogd.c | 6 | ||||
| -rw-r--r-- | util-linux/dmesg.c | 9 | ||||
| -rw-r--r-- | util-linux/swaponoff.c | 7 |
26 files changed, 35 insertions, 581 deletions
diff --git a/coreutils/chgrp.c b/coreutils/chgrp.c index 78593ae76..2f3fa4197 100644 --- a/coreutils/chgrp.c +++ b/coreutils/chgrp.c | |||
| @@ -29,7 +29,7 @@ | |||
| 29 | #include <unistd.h> | 29 | #include <unistd.h> |
| 30 | #include "busybox.h" | 30 | #include "busybox.h" |
| 31 | 31 | ||
| 32 | /* Don't use lchown for libc5 or glibc older then 2.1.x */ | 32 | /* Don't use lchown glibc older then 2.1.x */ |
| 33 | #if (__GLIBC__ <= 2) && (__GLIBC_MINOR__ < 1) | 33 | #if (__GLIBC__ <= 2) && (__GLIBC_MINOR__ < 1) |
| 34 | #define lchown chown | 34 | #define lchown chown |
| 35 | #endif | 35 | #endif |
diff --git a/coreutils/chown.c b/coreutils/chown.c index 5b1b89e79..7b9ea9175 100644 --- a/coreutils/chown.c +++ b/coreutils/chown.c | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | #include <string.h> | 30 | #include <string.h> |
| 31 | #include "busybox.h" | 31 | #include "busybox.h" |
| 32 | 32 | ||
| 33 | /* Don't use lchown for libc5 or glibc older then 2.1.x */ | 33 | /* Don't use lchown for glibc older then 2.1.x */ |
| 34 | #if (__GLIBC__ <= 2) && (__GLIBC_MINOR__ < 1) | 34 | #if (__GLIBC__ <= 2) && (__GLIBC_MINOR__ < 1) |
| 35 | #define lchown chown | 35 | #define lchown chown |
| 36 | #endif | 36 | #endif |
diff --git a/include/busybox.h b/include/busybox.h index 8285494ef..aaa844f43 100644 --- a/include/busybox.h +++ b/include/busybox.h | |||
| @@ -31,6 +31,12 @@ | |||
| 31 | #include <sys/stat.h> | 31 | #include <sys/stat.h> |
| 32 | #include <sys/types.h> | 32 | #include <sys/types.h> |
| 33 | 33 | ||
| 34 | #if __GNU_LIBRARY__ < 5 | ||
| 35 | #ifndef __dietlibc__ | ||
| 36 | #error "Sorry, libc5 is not supported" | ||
| 37 | #endif | ||
| 38 | #endif | ||
| 39 | |||
| 34 | #define BB_BANNER "BusyBox v" BB_VER " (" BB_BT ")" | 40 | #define BB_BANNER "BusyBox v" BB_VER " (" BB_BT ")" |
| 35 | 41 | ||
| 36 | #ifdef DMALLOC | 42 | #ifdef DMALLOC |
| @@ -93,17 +99,6 @@ extern const struct BB_applet applets[]; | |||
| 93 | #endif | 99 | #endif |
| 94 | 100 | ||
| 95 | 101 | ||
| 96 | /* Bit map related macros -- libc5 doens't provide these... sigh. */ | ||
| 97 | #ifndef setbit | ||
| 98 | #ifndef NBBY | ||
| 99 | #define NBBY CHAR_BIT | ||
| 100 | #endif | ||
| 101 | #define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) | ||
| 102 | #define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) | ||
| 103 | #define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) | ||
| 104 | #define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) | ||
| 105 | #endif | ||
| 106 | |||
| 107 | #ifndef RB_POWER_OFF | 102 | #ifndef RB_POWER_OFF |
| 108 | /* Stop system and switch power off if possible. */ | 103 | /* Stop system and switch power off if possible. */ |
| 109 | #define RB_POWER_OFF 0x4321fedc | 104 | #define RB_POWER_OFF 0x4321fedc |
diff --git a/include/libbb.h b/include/libbb.h index 6bd096c7f..a4d8c7196 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
| @@ -57,18 +57,6 @@ | |||
| 57 | # define inline | 57 | # define inline |
| 58 | #endif | 58 | #endif |
| 59 | 59 | ||
| 60 | #if (__GNU_LIBRARY__ < 5) && (!defined __dietlibc__) | ||
| 61 | /* libc5 doesn't define socklen_t */ | ||
| 62 | #ifndef _SOCKLEN_T | ||
| 63 | #define _SOCKLEN_T | ||
| 64 | typedef unsigned int socklen_t; | ||
| 65 | #endif | ||
| 66 | /* libc5 doesn't implement BSD 4.4 daemon() */ | ||
| 67 | extern int daemon (int nochdir, int noclose); | ||
| 68 | /* libc5 doesn't implement strtok_r */ | ||
| 69 | char *strtok_r(char *s, const char *delim, char **ptrptr); | ||
| 70 | #endif | ||
| 71 | |||
| 72 | /* Convenience macros to test the version of gcc. */ | 60 | /* Convenience macros to test the version of gcc. */ |
| 73 | #if defined __GNUC__ && defined __GNUC_MINOR__ | 61 | #if defined __GNUC__ && defined __GNUC_MINOR__ |
| 74 | # define __GNUC_PREREQ(maj, min) \ | 62 | # define __GNUC_PREREQ(maj, min) \ |
diff --git a/init/init.c b/init/init.c index 69ce4b2c9..1f0bd4aec 100644 --- a/init/init.c +++ b/init/init.c | |||
| @@ -42,6 +42,7 @@ | |||
| 42 | #include <sys/mount.h> | 42 | #include <sys/mount.h> |
| 43 | #include <sys/types.h> | 43 | #include <sys/types.h> |
| 44 | #include <sys/wait.h> | 44 | #include <sys/wait.h> |
| 45 | #include <sys/reboot.h> | ||
| 45 | #include "busybox.h" | 46 | #include "busybox.h" |
| 46 | 47 | ||
| 47 | #include "init_shared.h" | 48 | #include "init_shared.h" |
| @@ -50,9 +51,6 @@ | |||
| 50 | #ifdef CONFIG_SYSLOGD | 51 | #ifdef CONFIG_SYSLOGD |
| 51 | # include <sys/syslog.h> | 52 | # include <sys/syslog.h> |
| 52 | #endif | 53 | #endif |
| 53 | #if (__GNU_LIBRARY__ > 5) || defined(__dietlibc__) | ||
| 54 | #include <sys/reboot.h> | ||
| 55 | #endif | ||
| 56 | 54 | ||
| 57 | 55 | ||
| 58 | #if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_MMU__) | 56 | #if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_MMU__) |
| @@ -665,11 +663,7 @@ static void init_reboot(unsigned long magic) | |||
| 665 | * linux/kernel/sys.c, which can cause the machine to panic when | 663 | * linux/kernel/sys.c, which can cause the machine to panic when |
| 666 | * the init process is killed.... */ | 664 | * the init process is killed.... */ |
| 667 | if ((pid = fork()) == 0) { | 665 | if ((pid = fork()) == 0) { |
| 668 | #if (__GNU_LIBRARY__ > 5) || defined(__dietlibc__) | ||
| 669 | reboot(magic); | 666 | reboot(magic); |
| 670 | #else | ||
| 671 | reboot(0xfee1dead, 672274793, magic); | ||
| 672 | #endif | ||
| 673 | _exit(0); | 667 | _exit(0); |
| 674 | } | 668 | } |
| 675 | waitpid (pid, NULL, 0); | 669 | waitpid (pid, NULL, 0); |
diff --git a/init/reboot.c b/init/reboot.c index e9f9ff831..5ca8b588a 100644 --- a/init/reboot.c +++ b/init/reboot.c | |||
| @@ -25,18 +25,11 @@ | |||
| 25 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| 26 | #include <unistd.h> | 26 | #include <unistd.h> |
| 27 | #include <getopt.h> | 27 | #include <getopt.h> |
| 28 | 28 | #include <sys/reboot.h> | |
| 29 | #include "busybox.h" | 29 | #include "busybox.h" |
| 30 | #include "init_shared.h" | 30 | #include "init_shared.h" |
| 31 | 31 | ||
| 32 | 32 | ||
| 33 | #if (__GNU_LIBRARY__ > 5) || defined(__dietlibc__) | ||
| 34 | #include <sys/reboot.h> | ||
| 35 | #define init_reboot(magic) reboot(magic) | ||
| 36 | #else | ||
| 37 | #define init_reboot(magic) reboot(0xfee1dead, 672274793, magic) | ||
| 38 | #endif | ||
| 39 | |||
| 40 | #ifndef RB_ENABLE_CAD | 33 | #ifndef RB_ENABLE_CAD |
| 41 | static const int RB_ENABLE_CAD = 0x89abcdef; | 34 | static const int RB_ENABLE_CAD = 0x89abcdef; |
| 42 | static const int RB_AUTOBOOT = 0x01234567; | 35 | static const int RB_AUTOBOOT = 0x01234567; |
| @@ -57,7 +50,7 @@ extern int reboot_main(int argc, char **argv) | |||
| 57 | setpgrp(); | 50 | setpgrp(); |
| 58 | 51 | ||
| 59 | /* Allow Ctrl-Alt-Del to reboot system. */ | 52 | /* Allow Ctrl-Alt-Del to reboot system. */ |
| 60 | init_reboot(RB_ENABLE_CAD); | 53 | reboot(RB_ENABLE_CAD); |
| 61 | 54 | ||
| 62 | message(CONSOLE|LOG, "\n\rThe system is going down NOW !!\n"); | 55 | message(CONSOLE|LOG, "\n\rThe system is going down NOW !!\n"); |
| 63 | sync(); | 56 | sync(); |
| @@ -74,7 +67,7 @@ extern int reboot_main(int argc, char **argv) | |||
| 74 | 67 | ||
| 75 | sync(); | 68 | sync(); |
| 76 | 69 | ||
| 77 | init_reboot(RB_AUTOBOOT); | 70 | reboot(RB_AUTOBOOT); |
| 78 | return 0; /* Shrug */ | 71 | return 0; /* Shrug */ |
| 79 | #else | 72 | #else |
| 80 | return kill_init(SIGTERM); | 73 | return kill_init(SIGTERM); |
diff --git a/libbb/Makefile.in b/libbb/Makefile.in index cde3fb2fa..c4886e3ff 100644 --- a/libbb/Makefile.in +++ b/libbb/Makefile.in | |||
| @@ -27,12 +27,12 @@ LIBBB_SRC:= \ | |||
| 27 | arith.c bb_asprintf.c ask_confirmation.c change_identity.c chomp.c \ | 27 | arith.c bb_asprintf.c ask_confirmation.c change_identity.c chomp.c \ |
| 28 | compare_string_array.c concat_path_file.c copy_file.c \ | 28 | compare_string_array.c concat_path_file.c copy_file.c \ |
| 29 | copyfd.c correct_password.c create_icmp_socket.c \ | 29 | copyfd.c correct_password.c create_icmp_socket.c \ |
| 30 | create_icmp6_socket.c device_open.c dirname.c dump.c error_msg.c \ | 30 | create_icmp6_socket.c device_open.c dump.c error_msg.c \ |
| 31 | error_msg_and_die.c find_mount_point.c find_pid_by_name.c \ | 31 | error_msg_and_die.c find_mount_point.c find_pid_by_name.c \ |
| 32 | find_root_device.c fgets_str.c full_read.c full_write.c get_console.c \ | 32 | find_root_device.c fgets_str.c full_read.c full_write.c get_console.c \ |
| 33 | get_last_path_component.c get_line_from_file.c herror_msg.c \ | 33 | get_last_path_component.c get_line_from_file.c herror_msg.c \ |
| 34 | herror_msg_and_die.c human_readable.c inet_common.c inode_hash.c \ | 34 | herror_msg_and_die.c human_readable.c inet_common.c inode_hash.c \ |
| 35 | interface.c isdirectory.c kernel_version.c last_char_is.c libc5.c \ | 35 | interface.c isdirectory.c kernel_version.c last_char_is.c \ |
| 36 | llist_add_to.c login.c loop.c make_directory.c mode_string.c \ | 36 | llist_add_to.c login.c loop.c make_directory.c mode_string.c \ |
| 37 | module_syscalls.c mtab.c mtab_file.c my_getgrgid.c my_getgrnam.c \ | 37 | module_syscalls.c mtab.c mtab_file.c my_getgrgid.c my_getgrnam.c \ |
| 38 | my_getpwnam.c my_getpwnamegid.c my_getpwuid.c obscure.c parse_mode.c \ | 38 | my_getpwnam.c my_getpwnamegid.c my_getpwuid.c obscure.c parse_mode.c \ |
diff --git a/libbb/dirname.c b/libbb/dirname.c deleted file mode 100644 index 81298730b..000000000 --- a/libbb/dirname.c +++ /dev/null | |||
| @@ -1,69 +0,0 @@ | |||
| 1 | /* vi: set sw=4 ts=4: */ | ||
| 2 | /* | ||
| 3 | * dirname implementation for busybox (for libc's missing one) | ||
| 4 | * | ||
| 5 | * Copyright (C) 2003 Manuel Novoa III <mjn3@codepoet.org> | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or modify | ||
| 8 | * it under the terms of the GNU General Public License as published by | ||
| 9 | * the Free Software Foundation; either version 2 of the License, or | ||
| 10 | * (at your option) any later version. | ||
| 11 | * | ||
| 12 | * This program is distributed in the hope that it will be useful, | ||
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 15 | * General Public License for more details. | ||
| 16 | * | ||
| 17 | * You should have received a copy of the GNU General Public License | ||
| 18 | * along with this program; if not, write to the Free Software | ||
| 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
| 20 | * | ||
| 21 | */ | ||
| 22 | |||
| 23 | /* Note: The previous busybox implementation did not handle NULL path | ||
| 24 | * and also moved a pointer before path, which is not portable in C. | ||
| 25 | * So I replaced it with my uClibc version. | ||
| 26 | */ | ||
| 27 | |||
| 28 | #include <string.h> | ||
| 29 | #include "libbb.h" | ||
| 30 | |||
| 31 | #if __GNU_LIBRARY__ < 5 | ||
| 32 | |||
| 33 | extern | ||
| 34 | char *dirname(char *path) | ||
| 35 | { | ||
| 36 | static const char null_or_empty_or_noslash[] = "."; | ||
| 37 | register char *s; | ||
| 38 | register char *last; | ||
| 39 | char *first; | ||
| 40 | |||
| 41 | last = s = path; | ||
| 42 | |||
| 43 | if (s != NULL) { | ||
| 44 | |||
| 45 | LOOP: | ||
| 46 | while (*s && (*s != '/')) ++s; | ||
| 47 | first = s; | ||
| 48 | while (*s == '/') ++s; | ||
| 49 | if (*s) { | ||
| 50 | last = first; | ||
| 51 | goto LOOP; | ||
| 52 | } | ||
| 53 | |||
| 54 | if (last == path) { | ||
| 55 | if (*last != '/') { | ||
| 56 | goto DOT; | ||
| 57 | } | ||
| 58 | if ((*++last == '/') && (last[1] == 0)) { | ||
| 59 | ++last; | ||
| 60 | } | ||
| 61 | } | ||
| 62 | *last = 0; | ||
| 63 | return path; | ||
| 64 | } | ||
| 65 | DOT: | ||
| 66 | return (char *) null_or_empty_or_noslash; | ||
| 67 | } | ||
| 68 | |||
| 69 | #endif | ||
diff --git a/libbb/interface.c b/libbb/interface.c index fb3a42a0c..46c3ba96c 100644 --- a/libbb/interface.c +++ b/libbb/interface.c | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | * that either displays or sets the characteristics of | 15 | * that either displays or sets the characteristics of |
| 16 | * one or more of the system's networking interfaces. | 16 | * one or more of the system's networking interfaces. |
| 17 | * | 17 | * |
| 18 | * Version: $Id: interface.c,v 1.16 2003/07/14 21:20:55 andersen Exp $ | 18 | * Version: $Id: interface.c,v 1.17 2003/07/22 08:56:46 andersen Exp $ |
| 19 | * | 19 | * |
| 20 | * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> | 20 | * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> |
| 21 | * and others. Copyright 1993 MicroWalt Corporation | 21 | * and others. Copyright 1993 MicroWalt Corporation |
| @@ -76,6 +76,7 @@ | |||
| 76 | #include <fcntl.h> | 76 | #include <fcntl.h> |
| 77 | #include <ctype.h> | 77 | #include <ctype.h> |
| 78 | #include <sys/ioctl.h> | 78 | #include <sys/ioctl.h> |
| 79 | #include <sys/types.h> | ||
| 79 | #include <net/if.h> | 80 | #include <net/if.h> |
| 80 | #include <net/if_arp.h> | 81 | #include <net/if_arp.h> |
| 81 | #include "libbb.h" | 82 | #include "libbb.h" |
| @@ -88,10 +89,6 @@ | |||
| 88 | 89 | ||
| 89 | static int procnetdev_vsn = 1; | 90 | static int procnetdev_vsn = 1; |
| 90 | 91 | ||
| 91 | /* Ugh. But libc5 doesn't provide POSIX types. */ | ||
| 92 | #include <asm/types.h> | ||
| 93 | |||
| 94 | |||
| 95 | #ifdef HAVE_HWSLIP | 92 | #ifdef HAVE_HWSLIP |
| 96 | #include <net/if_slip.h> | 93 | #include <net/if_slip.h> |
| 97 | #endif | 94 | #endif |
diff --git a/libbb/libc5.c b/libbb/libc5.c deleted file mode 100644 index ac7919626..000000000 --- a/libbb/libc5.c +++ /dev/null | |||
| @@ -1,184 +0,0 @@ | |||
| 1 | /* vi: set sw=4 ts=4: */ | ||
| 2 | |||
| 3 | |||
| 4 | #include <features.h> | ||
| 5 | #include <string.h> | ||
| 6 | #include <stdio.h> | ||
| 7 | #include <fcntl.h> | ||
| 8 | #include <paths.h> | ||
| 9 | #include <unistd.h> | ||
| 10 | |||
| 11 | |||
| 12 | #if ! defined __dietlibc__ && __GNU_LIBRARY__ < 5 | ||
| 13 | |||
| 14 | /* | ||
| 15 | * Some systems already have updwtmp(). Some don't... This is | ||
| 16 | * the updwtmp() implementation from uClibc, Copyright 2002 by | ||
| 17 | * Erik Andersen <andersen@codepoet.org> | ||
| 18 | */ | ||
| 19 | extern void updwtmp(const char *wtmp_file, const struct utmp *lutmp) | ||
| 20 | { | ||
| 21 | int fd; | ||
| 22 | |||
| 23 | fd = open(wtmp_file, O_APPEND | O_WRONLY, 0); | ||
| 24 | if (fd >= 0) { | ||
| 25 | if (lockf(fd, F_LOCK, 0)==0) { | ||
| 26 | write(fd, (const char *) lutmp, sizeof(struct utmp)); | ||
| 27 | lockf(fd, F_ULOCK, 0); | ||
| 28 | close(fd); | ||
| 29 | } | ||
| 30 | } | ||
| 31 | } | ||
| 32 | |||
| 33 | /* Copyright (C) 1991 Free Software Foundation, Inc. | ||
| 34 | This file is part of the GNU C Library. | ||
| 35 | |||
| 36 | The GNU C Library is free software; you can redistribute it and/or | ||
| 37 | modify it under the terms of the GNU Library General Public License as | ||
| 38 | published by the Free Software Foundation; either version 2 of the | ||
| 39 | License, or (at your option) any later version. | ||
| 40 | |||
| 41 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 42 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 43 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 44 | Library General Public License for more details. | ||
| 45 | |||
| 46 | You should have received a copy of the GNU Library General Public | ||
| 47 | License along with the GNU C Library; see the file COPYING.LIB. If | ||
| 48 | not, write to the Free Software Foundation, Inc., 675 Mass Ave, | ||
| 49 | Cambridge, MA 02139, USA. */ | ||
| 50 | |||
| 51 | /* | ||
| 52 | * Modified by Manuel Novoa III Mar 1, 2001 | ||
| 53 | * | ||
| 54 | * Converted original strtok.c code of strtok to __strtok_r. | ||
| 55 | * Cleaned up logic and reduced code size. | ||
| 56 | */ | ||
| 57 | |||
| 58 | |||
| 59 | char *strtok_r(char *s, const char *delim, char **save_ptr) | ||
| 60 | { | ||
| 61 | char *token; | ||
| 62 | |||
| 63 | token = 0; /* Initialize to no token. */ | ||
| 64 | |||
| 65 | if (s == 0) { /* If not first time called... */ | ||
| 66 | s = *save_ptr; /* restart from where we left off. */ | ||
| 67 | } | ||
| 68 | |||
| 69 | if (s != 0) { /* If not finished... */ | ||
| 70 | *save_ptr = 0; | ||
| 71 | |||
| 72 | s += strspn(s, delim); /* Skip past any leading delimiters. */ | ||
| 73 | if (*s != '\0') { /* We have a token. */ | ||
| 74 | token = s; | ||
| 75 | *save_ptr = strpbrk(token, delim); /* Find token's end. */ | ||
| 76 | if (*save_ptr != 0) { | ||
| 77 | /* Terminate the token and make SAVE_PTR point past it. */ | ||
| 78 | *(*save_ptr)++ = '\0'; | ||
| 79 | } | ||
| 80 | } | ||
| 81 | } | ||
| 82 | |||
| 83 | return token; | ||
| 84 | } | ||
| 85 | |||
| 86 | /* Basically getdelim() with the delimiter hard wired to '\n' */ | ||
| 87 | ssize_t getline(char **linebuf, size_t *n, FILE *file) | ||
| 88 | { | ||
| 89 | return (getdelim (linebuf, n, '\n', file)); | ||
| 90 | } | ||
| 91 | |||
| 92 | |||
| 93 | /* | ||
| 94 | * daemon implementation for uClibc | ||
| 95 | * | ||
| 96 | * Copyright (c) 1991, 1993 | ||
| 97 | * The Regents of the University of California. All rights reserved. | ||
| 98 | * | ||
| 99 | * Modified for uClibc by Erik Andersen <andersen@codepoet.org> | ||
| 100 | * | ||
| 101 | * The uClibc Library is free software; you can redistribute it and/or | ||
| 102 | * modify it under the terms of the GNU Library General Public License as | ||
| 103 | * published by the Free Software Foundation; either version 2 of the | ||
| 104 | * License, or (at your option) any later version. | ||
| 105 | * | ||
| 106 | * The GNU C Library is distributed in the hope that it will be useful, | ||
| 107 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 108 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 109 | * Library General Public License for more details. | ||
| 110 | * | ||
| 111 | * You should have received a copy of the GNU Library General Public | ||
| 112 | * License along with the GNU C Library; see the file COPYING.LIB. If not, | ||
| 113 | * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
| 114 | * Boston, MA 02111-1307, USA. | ||
| 115 | * | ||
| 116 | * Original copyright notice is retained at the end of this file. | ||
| 117 | */ | ||
| 118 | |||
| 119 | int daemon( int nochdir, int noclose ) | ||
| 120 | { | ||
| 121 | int fd; | ||
| 122 | |||
| 123 | switch (fork()) { | ||
| 124 | case -1: | ||
| 125 | return(-1); | ||
| 126 | case 0: | ||
| 127 | break; | ||
| 128 | default: | ||
| 129 | _exit(0); | ||
| 130 | } | ||
| 131 | |||
| 132 | if (setsid() == -1) | ||
| 133 | return(-1); | ||
| 134 | |||
| 135 | if (!nochdir) | ||
| 136 | chdir("/"); | ||
| 137 | |||
| 138 | if (!noclose && (fd = open(_PATH_DEVNULL, O_RDWR, 0)) != -1) { | ||
| 139 | dup2(fd, STDIN_FILENO); | ||
| 140 | dup2(fd, STDOUT_FILENO); | ||
| 141 | dup2(fd, STDERR_FILENO); | ||
| 142 | if (fd > 2) | ||
| 143 | close(fd); | ||
| 144 | } | ||
| 145 | return(0); | ||
| 146 | } | ||
| 147 | |||
| 148 | |||
| 149 | /*- | ||
| 150 | * Copyright (c) 1990, 1993 | ||
| 151 | * The Regents of the University of California. All rights reserved. | ||
| 152 | * | ||
| 153 | * Redistribution and use in source and binary forms, with or without | ||
| 154 | * modification, are permitted provided that the following conditions | ||
| 155 | * are met: | ||
| 156 | * 1. Redistributions of source code must retain the above copyright | ||
| 157 | * notice, this list of conditions and the following disclaimer. | ||
| 158 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 159 | * notice, this list of conditions and the following disclaimer in the | ||
| 160 | * documentation and/or other materials provided with the distribution. | ||
| 161 | * | ||
| 162 | * 3. <BSD Advertising Clause omitted per the July 22, 1999 licensing change | ||
| 163 | * ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change> | ||
| 164 | * | ||
| 165 | * 4. Neither the name of the University nor the names of its contributors | ||
| 166 | * may be used to endorse or promote products derived from this software | ||
| 167 | * without specific prior written permission. | ||
| 168 | * | ||
| 169 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 170 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 171 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 172 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 173 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 174 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 175 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 176 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 177 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 178 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 179 | * SUCH DAMAGE. | ||
| 180 | */ | ||
| 181 | |||
| 182 | |||
| 183 | #endif | ||
| 184 | |||
diff --git a/libbb/module_syscalls.c b/libbb/module_syscalls.c index 6b6ebed06..cb9258af2 100644 --- a/libbb/module_syscalls.c +++ b/libbb/module_syscalls.c | |||
| @@ -27,15 +27,11 @@ | |||
| 27 | _syscall* defined. */ | 27 | _syscall* defined. */ |
| 28 | #define __LIBRARY__ | 28 | #define __LIBRARY__ |
| 29 | #include <sys/syscall.h> | 29 | #include <sys/syscall.h> |
| 30 | #if __GNU_LIBRARY__ < 5 | ||
| 31 | /* This is needed for libc5 */ | ||
| 32 | #include <asm/unistd.h> | ||
| 33 | #endif | ||
| 34 | #include "libbb.h" | 30 | #include "libbb.h" |
| 35 | 31 | ||
| 36 | 32 | ||
| 37 | #if __GNU_LIBRARY__ < 5 || ((__GLIBC__ <= 2) && (__GLIBC_MINOR__ < 1)) | 33 | /* These syscalls are not included in very old glibc versions */ |
| 38 | /* These syscalls are not included as part of libc5 */ | 34 | #if ((__GLIBC__ <= 2) && (__GLIBC_MINOR__ < 1)) |
| 39 | int delete_module(const char *name) | 35 | int delete_module(const char *name) |
| 40 | { | 36 | { |
| 41 | return(syscall(__NR_delete_module, name)); | 37 | return(syscall(__NR_delete_module, name)); |
| @@ -79,7 +75,7 @@ unsigned long create_module(const char *name, size_t size) | |||
| 79 | return ret; | 75 | return ret; |
| 80 | } | 76 | } |
| 81 | 77 | ||
| 82 | #endif /* __GNU_LIBRARY__ < 5 */ | 78 | #endif |
| 83 | 79 | ||
| 84 | 80 | ||
| 85 | /* END CODE */ | 81 | /* END CODE */ |
diff --git a/libbb/syscalls.c b/libbb/syscalls.c index ee58d3674..8ceb35695 100644 --- a/libbb/syscalls.c +++ b/libbb/syscalls.c | |||
| @@ -27,10 +27,6 @@ | |||
| 27 | _syscall* defined. */ | 27 | _syscall* defined. */ |
| 28 | #define __LIBRARY__ | 28 | #define __LIBRARY__ |
| 29 | #include <sys/syscall.h> | 29 | #include <sys/syscall.h> |
| 30 | #if __GNU_LIBRARY__ < 5 | ||
| 31 | /* This is needed for libc5 */ | ||
| 32 | #include <asm/unistd.h> | ||
| 33 | #endif | ||
| 34 | #include "libbb.h" | 30 | #include "libbb.h" |
| 35 | 31 | ||
| 36 | int sysfs( int option, unsigned int fs_index, char * buf) | 32 | int sysfs( int option, unsigned int fs_index, char * buf) |
| @@ -59,9 +55,9 @@ int pivot_root(const char * new_root,const char * put_old) | |||
| 59 | 55 | ||
| 60 | 56 | ||
| 61 | 57 | ||
| 62 | #if __GNU_LIBRARY__ < 5 || ((__GLIBC__ <= 2) && (__GLIBC_MINOR__ < 1)) | 58 | /* These syscalls are not included in ancient glibc versions */ |
| 59 | #if ((__GLIBC__ <= 2) && (__GLIBC_MINOR__ < 1)) | ||
| 63 | 60 | ||
| 64 | /* These syscalls are not included as part of libc5 */ | ||
| 65 | int bdflush(int func, int data) | 61 | int bdflush(int func, int data) |
| 66 | { | 62 | { |
| 67 | return(syscall(__NR_bdflush, func, data)); | 63 | return(syscall(__NR_bdflush, func, data)); |
| @@ -96,7 +92,7 @@ int umount2(const char * special_file, int flags) | |||
| 96 | } | 92 | } |
| 97 | 93 | ||
| 98 | 94 | ||
| 99 | #endif /* __GNU_LIBRARY__ < 5 */ | 95 | #endif |
| 100 | 96 | ||
| 101 | 97 | ||
| 102 | /* END CODE */ | 98 | /* END CODE */ |
diff --git a/libpwdgrp/setgroups.c b/libpwdgrp/setgroups.c index c133849e8..449e811dc 100644 --- a/libpwdgrp/setgroups.c +++ b/libpwdgrp/setgroups.c | |||
| @@ -30,12 +30,11 @@ | |||
| 30 | _syscall* defined. */ | 30 | _syscall* defined. */ |
| 31 | #define __LIBRARY__ | 31 | #define __LIBRARY__ |
| 32 | #include <sys/syscall.h> | 32 | #include <sys/syscall.h> |
| 33 | #if __GNU_LIBRARY__ < 5 | ||
| 34 | /* This is needed for libc5 */ | ||
| 35 | #include <asm/unistd.h> | ||
| 36 | #endif | ||
| 37 | #include "grp_.h" | 33 | #include "grp_.h" |
| 38 | 34 | ||
| 39 | //#define __NR_setgroups 81 | 35 | int setgroups(size_t size, const gid_t * list) |
| 40 | _syscall2(int, setgroups, size_t, size, const gid_t *, list); | 36 | { |
| 37 | return(syscall(__NR_setgroups, size, list)); | ||
| 38 | } | ||
| 39 | |||
| 41 | 40 | ||
diff --git a/miscutils/adjtimex.c b/miscutils/adjtimex.c index d541848f0..e941f6b4f 100644 --- a/miscutils/adjtimex.c +++ b/miscutils/adjtimex.c | |||
| @@ -44,14 +44,7 @@ | |||
| 44 | #include <sys/types.h> | 44 | #include <sys/types.h> |
| 45 | #include <stdlib.h> | 45 | #include <stdlib.h> |
| 46 | #include <unistd.h> | 46 | #include <unistd.h> |
| 47 | |||
| 48 | #if __GNU_LIBRARY__ < 5 | ||
| 49 | #include <sys/timex.h> | ||
| 50 | extern int adjtimex(struct timex *buf); | ||
| 51 | #else | ||
| 52 | #include <sys/timex.h> | 47 | #include <sys/timex.h> |
| 53 | #endif | ||
| 54 | |||
| 55 | #include "busybox.h" | 48 | #include "busybox.h" |
| 56 | 49 | ||
| 57 | static struct {int bit; char *name;} statlist[] = { | 50 | static struct {int bit; char *name;} statlist[] = { |
diff --git a/miscutils/dutmp.c b/miscutils/dutmp.c index 113f850fe..86d7ce4b3 100644 --- a/miscutils/dutmp.c +++ b/miscutils/dutmp.c | |||
| @@ -28,13 +28,9 @@ | |||
| 28 | * Do what we can while still keeping this reasonably small. | 28 | * Do what we can while still keeping this reasonably small. |
| 29 | * Note: We are assuming the ut_id[] size is fixed at 4. */ | 29 | * Note: We are assuming the ut_id[] size is fixed at 4. */ |
| 30 | 30 | ||
| 31 | #if __GNU_LIBRARY__ < 5 | ||
| 32 | #warning the format string needs to be changed | ||
| 33 | #else | ||
| 34 | #if (UT_LINESIZE != 32) || (UT_NAMESIZE != 32) || (UT_HOSTSIZE != 256) | 31 | #if (UT_LINESIZE != 32) || (UT_NAMESIZE != 32) || (UT_HOSTSIZE != 256) |
| 35 | #error struct utmp member char[] size(s) have changed! | 32 | #error struct utmp member char[] size(s) have changed! |
| 36 | #endif | 33 | #endif |
| 37 | #endif | ||
| 38 | 34 | ||
| 39 | extern int dutmp_main(int argc, char **argv) | 35 | extern int dutmp_main(int argc, char **argv) |
| 40 | { | 36 | { |
| @@ -57,18 +53,6 @@ extern int dutmp_main(int argc, char **argv) | |||
| 57 | bb_perror_msg_and_die("short read"); | 53 | bb_perror_msg_and_die("short read"); |
| 58 | } | 54 | } |
| 59 | 55 | ||
| 60 | /* Kludge around the fact that the binary format for utmp has changed. */ | ||
| 61 | #if __GNU_LIBRARY__ < 5 | ||
| 62 | /* Linux libc5 */ | ||
| 63 | |||
| 64 | bb_printf("%d|%d|%s|%s|%s|%s|%s|%lx\n", | ||
| 65 | ut.ut_type, ut.ut_pid, ut.ut_line, | ||
| 66 | ut.ut_id, ut.ut_user, ut.ut_host, | ||
| 67 | ctime(&(ut.ut_time)), | ||
| 68 | (long)ut.ut_addr); | ||
| 69 | #else | ||
| 70 | /* Glibc, uClibc, etc. */ | ||
| 71 | |||
| 72 | bb_printf("%d|%d|%.32s|%.4s|%.32s|%.256s|%d|%d|%ld|%ld|%ld|%x\n", | 56 | bb_printf("%d|%d|%.32s|%.4s|%.32s|%.256s|%d|%d|%ld|%ld|%ld|%x\n", |
| 73 | ut.ut_type, ut.ut_pid, ut.ut_line, | 57 | ut.ut_type, ut.ut_pid, ut.ut_line, |
| 74 | ut.ut_id, ut.ut_user, ut.ut_host, | 58 | ut.ut_id, ut.ut_user, ut.ut_host, |
| @@ -76,7 +60,6 @@ extern int dutmp_main(int argc, char **argv) | |||
| 76 | ut.ut_session, | 60 | ut.ut_session, |
| 77 | ut.ut_tv.tv_sec, ut.ut_tv.tv_usec, | 61 | ut.ut_tv.tv_sec, ut.ut_tv.tv_usec, |
| 78 | ut.ut_addr); | 62 | ut.ut_addr); |
| 79 | #endif | ||
| 80 | } | 63 | } |
| 81 | 64 | ||
| 82 | bb_fflush_stdout_and_exit(EXIT_SUCCESS); | 65 | bb_fflush_stdout_and_exit(EXIT_SUCCESS); |
diff --git a/miscutils/update.c b/miscutils/update.c index 48ea02deb..c51f42183 100644 --- a/miscutils/update.c +++ b/miscutils/update.c | |||
| @@ -32,12 +32,7 @@ | |||
| 32 | #include <sys/syslog.h> | 32 | #include <sys/syslog.h> |
| 33 | #include <unistd.h> /* for getopt() */ | 33 | #include <unistd.h> /* for getopt() */ |
| 34 | #include <stdlib.h> | 34 | #include <stdlib.h> |
| 35 | 35 | #include <sys/kdaemon.h> | |
| 36 | #if __GNU_LIBRARY__ > 5 | ||
| 37 | #include <sys/kdaemon.h> | ||
| 38 | #else | ||
| 39 | extern int bdflush (int func, long int data); | ||
| 40 | #endif | ||
| 41 | 36 | ||
| 42 | #include "busybox.h" | 37 | #include "busybox.h" |
| 43 | 38 | ||
diff --git a/modutils/insmod.c b/modutils/insmod.c index 1f5965e0a..84617fa48 100644 --- a/modutils/insmod.c +++ b/modutils/insmod.c | |||
| @@ -247,7 +247,7 @@ | |||
| 247 | #ifndef MODUTILS_MODULE_H | 247 | #ifndef MODUTILS_MODULE_H |
| 248 | static const int MODUTILS_MODULE_H = 1; | 248 | static const int MODUTILS_MODULE_H = 1; |
| 249 | 249 | ||
| 250 | #ident "$Id: insmod.c,v 1.98 2003/07/14 21:21:00 andersen Exp $" | 250 | #ident "$Id: insmod.c,v 1.99 2003/07/22 08:56:50 andersen Exp $" |
| 251 | 251 | ||
| 252 | /* This file contains the structures used by the 2.0 and 2.1 kernels. | 252 | /* This file contains the structures used by the 2.0 and 2.1 kernels. |
| 253 | We do not use the kernel headers directly because we do not wish | 253 | We do not use the kernel headers directly because we do not wish |
| @@ -468,7 +468,7 @@ int delete_module(const char *); | |||
| 468 | #ifndef MODUTILS_OBJ_H | 468 | #ifndef MODUTILS_OBJ_H |
| 469 | static const int MODUTILS_OBJ_H = 1; | 469 | static const int MODUTILS_OBJ_H = 1; |
| 470 | 470 | ||
| 471 | #ident "$Id: insmod.c,v 1.98 2003/07/14 21:21:00 andersen Exp $" | 471 | #ident "$Id: insmod.c,v 1.99 2003/07/22 08:56:50 andersen Exp $" |
| 472 | 472 | ||
| 473 | /* The relocatable object is manipulated using elfin types. */ | 473 | /* The relocatable object is manipulated using elfin types. */ |
| 474 | 474 | ||
| @@ -492,7 +492,7 @@ static const int MODUTILS_OBJ_H = 1; | |||
| 492 | # endif | 492 | # endif |
| 493 | #endif | 493 | #endif |
| 494 | 494 | ||
| 495 | /* For some reason this is missing from libc5. */ | 495 | /* For some reason this is missing from some ancient C libraries.... */ |
| 496 | #ifndef ELF32_ST_INFO | 496 | #ifndef ELF32_ST_INFO |
| 497 | # define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) | 497 | # define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) |
| 498 | #endif | 498 | #endif |
diff --git a/networking/ping.c b/networking/ping.c index 28b38db14..a38f356d6 100644 --- a/networking/ping.c +++ b/networking/ping.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* vi: set sw=4 ts=4: */ | 1 | /* vi: set sw=4 ts=4: */ |
| 2 | /* | 2 | /* |
| 3 | * $Id: ping.c,v 1.54 2003/03/19 09:12:38 mjn3 Exp $ | 3 | * $Id: ping.c,v 1.55 2003/07/22 08:56:51 andersen Exp $ |
| 4 | * Mini ping implementation for busybox | 4 | * Mini ping implementation for busybox |
| 5 | * | 5 | * |
| 6 | * Copyright (C) 1999 by Randolph Chung <tausq@debian.org> | 6 | * Copyright (C) 1999 by Randolph Chung <tausq@debian.org> |
| @@ -52,85 +52,6 @@ | |||
| 52 | #include "busybox.h" | 52 | #include "busybox.h" |
| 53 | 53 | ||
| 54 | 54 | ||
| 55 | /* It turns out that libc5 doesn't have proper icmp support | ||
| 56 | * built into it header files, so we have to supplement it */ | ||
| 57 | #if __GNU_LIBRARY__ < 5 | ||
| 58 | static const int ICMP_MINLEN = 8; /* abs minimum */ | ||
| 59 | |||
| 60 | struct icmp_ra_addr | ||
| 61 | { | ||
| 62 | u_int32_t ira_addr; | ||
| 63 | u_int32_t ira_preference; | ||
| 64 | }; | ||
| 65 | |||
| 66 | |||
| 67 | struct icmp | ||
| 68 | { | ||
| 69 | u_int8_t icmp_type; /* type of message, see below */ | ||
| 70 | u_int8_t icmp_code; /* type sub code */ | ||
| 71 | u_int16_t icmp_cksum; /* ones complement checksum of struct */ | ||
| 72 | union | ||
| 73 | { | ||
| 74 | u_char ih_pptr; /* ICMP_PARAMPROB */ | ||
| 75 | struct in_addr ih_gwaddr; /* gateway address */ | ||
| 76 | struct ih_idseq /* echo datagram */ | ||
| 77 | { | ||
| 78 | u_int16_t icd_id; | ||
| 79 | u_int16_t icd_seq; | ||
| 80 | } ih_idseq; | ||
| 81 | u_int32_t ih_void; | ||
| 82 | |||
| 83 | /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */ | ||
| 84 | struct ih_pmtu | ||
| 85 | { | ||
| 86 | u_int16_t ipm_void; | ||
| 87 | u_int16_t ipm_nextmtu; | ||
| 88 | } ih_pmtu; | ||
| 89 | |||
| 90 | struct ih_rtradv | ||
| 91 | { | ||
| 92 | u_int8_t irt_num_addrs; | ||
| 93 | u_int8_t irt_wpa; | ||
| 94 | u_int16_t irt_lifetime; | ||
| 95 | } ih_rtradv; | ||
| 96 | } icmp_hun; | ||
| 97 | #define icmp_pptr icmp_hun.ih_pptr | ||
| 98 | #define icmp_gwaddr icmp_hun.ih_gwaddr | ||
| 99 | #define icmp_id icmp_hun.ih_idseq.icd_id | ||
| 100 | #define icmp_seq icmp_hun.ih_idseq.icd_seq | ||
| 101 | #define icmp_void icmp_hun.ih_void | ||
| 102 | #define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void | ||
| 103 | #define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu | ||
| 104 | #define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs | ||
| 105 | #define icmp_wpa icmp_hun.ih_rtradv.irt_wpa | ||
| 106 | #define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime | ||
| 107 | union | ||
| 108 | { | ||
| 109 | struct | ||
| 110 | { | ||
| 111 | u_int32_t its_otime; | ||
| 112 | u_int32_t its_rtime; | ||
| 113 | u_int32_t its_ttime; | ||
| 114 | } id_ts; | ||
| 115 | struct | ||
| 116 | { | ||
| 117 | struct ip idi_ip; | ||
| 118 | /* options and then 64 bits of data */ | ||
| 119 | } id_ip; | ||
| 120 | struct icmp_ra_addr id_radv; | ||
| 121 | u_int32_t id_mask; | ||
| 122 | u_int8_t id_data[1]; | ||
| 123 | } icmp_dun; | ||
| 124 | #define icmp_otime icmp_dun.id_ts.its_otime | ||
| 125 | #define icmp_rtime icmp_dun.id_ts.its_rtime | ||
| 126 | #define icmp_ttime icmp_dun.id_ts.its_ttime | ||
| 127 | #define icmp_ip icmp_dun.id_ip.idi_ip | ||
| 128 | #define icmp_radv icmp_dun.id_radv | ||
| 129 | #define icmp_mask icmp_dun.id_mask | ||
| 130 | #define icmp_data icmp_dun.id_data | ||
| 131 | }; | ||
| 132 | #endif | ||
| 133 | |||
| 134 | static const int DEFDATALEN = 56; | 55 | static const int DEFDATALEN = 56; |
| 135 | static const int MAXIPLEN = 60; | 56 | static const int MAXIPLEN = 60; |
| 136 | static const int MAXICMPLEN = 76; | 57 | static const int MAXICMPLEN = 76; |
diff --git a/networking/traceroute.c b/networking/traceroute.c index be9ea1d95..5f8989fd1 100644 --- a/networking/traceroute.c +++ b/networking/traceroute.c | |||
| @@ -76,97 +76,6 @@ | |||
| 76 | #include <netinet/ip_icmp.h> | 76 | #include <netinet/ip_icmp.h> |
| 77 | 77 | ||
| 78 | 78 | ||
| 79 | /* It turns out that libc5 doesn't have proper icmp support | ||
| 80 | * built into it header files, so we have to supplement it */ | ||
| 81 | #if __GNU_LIBRARY__ < 5 | ||
| 82 | static const int ICMP_MINLEN = 8; /* abs minimum */ | ||
| 83 | |||
| 84 | struct icmp_ra_addr | ||
| 85 | { | ||
| 86 | u_int32_t ira_addr; | ||
| 87 | u_int32_t ira_preference; | ||
| 88 | }; | ||
| 89 | |||
| 90 | |||
| 91 | struct icmp | ||
| 92 | { | ||
| 93 | u_int8_t icmp_type; /* type of message, see below */ | ||
| 94 | u_int8_t icmp_code; /* type sub code */ | ||
| 95 | u_int16_t icmp_cksum; /* ones complement checksum of struct */ | ||
| 96 | union | ||
| 97 | { | ||
| 98 | u_char ih_pptr; /* ICMP_PARAMPROB */ | ||
| 99 | struct in_addr ih_gwaddr; /* gateway address */ | ||
| 100 | struct ih_idseq /* echo datagram */ | ||
| 101 | { | ||
| 102 | u_int16_t icd_id; | ||
| 103 | u_int16_t icd_seq; | ||
| 104 | } ih_idseq; | ||
| 105 | u_int32_t ih_void; | ||
| 106 | |||
| 107 | /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */ | ||
| 108 | struct ih_pmtu | ||
| 109 | { | ||
| 110 | u_int16_t ipm_void; | ||
| 111 | u_int16_t ipm_nextmtu; | ||
| 112 | } ih_pmtu; | ||
| 113 | |||
| 114 | struct ih_rtradv | ||
| 115 | { | ||
| 116 | u_int8_t irt_num_addrs; | ||
| 117 | u_int8_t irt_wpa; | ||
| 118 | u_int16_t irt_lifetime; | ||
| 119 | } ih_rtradv; | ||
| 120 | } icmp_hun; | ||
| 121 | #define icmp_pptr icmp_hun.ih_pptr | ||
| 122 | #define icmp_gwaddr icmp_hun.ih_gwaddr | ||
| 123 | #define icmp_id icmp_hun.ih_idseq.icd_id | ||
| 124 | #define icmp_seq icmp_hun.ih_idseq.icd_seq | ||
| 125 | #define icmp_void icmp_hun.ih_void | ||
| 126 | #define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void | ||
| 127 | #define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu | ||
| 128 | #define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs | ||
| 129 | #define icmp_wpa icmp_hun.ih_rtradv.irt_wpa | ||
| 130 | #define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime | ||
| 131 | union | ||
| 132 | { | ||
| 133 | struct | ||
| 134 | { | ||
| 135 | u_int32_t its_otime; | ||
| 136 | u_int32_t its_rtime; | ||
| 137 | u_int32_t its_ttime; | ||
| 138 | } id_ts; | ||
| 139 | struct | ||
| 140 | { | ||
| 141 | struct ip idi_ip; | ||
| 142 | /* options and then 64 bits of data */ | ||
| 143 | } id_ip; | ||
| 144 | struct icmp_ra_addr id_radv; | ||
| 145 | u_int32_t id_mask; | ||
| 146 | u_int8_t id_data[1]; | ||
| 147 | } icmp_dun; | ||
| 148 | #define icmp_otime icmp_dun.id_ts.its_otime | ||
| 149 | #define icmp_rtime icmp_dun.id_ts.its_rtime | ||
| 150 | #define icmp_ttime icmp_dun.id_ts.its_ttime | ||
| 151 | #define icmp_ip icmp_dun.id_ip.idi_ip | ||
| 152 | #define icmp_radv icmp_dun.id_radv | ||
| 153 | #define icmp_mask icmp_dun.id_mask | ||
| 154 | #define icmp_data icmp_dun.id_data | ||
| 155 | }; | ||
| 156 | |||
| 157 | #define ICMP_MINLEN 8 /* abs minimum */ | ||
| 158 | #define ICMP_UNREACH 3 /* dest unreachable, codes: */ | ||
| 159 | #define ICMP_TIMXCEED 11 /* time exceeded, code: */ | ||
| 160 | #define ICMP_TIMXCEED_INTRANS 0 /* ttl==0 in transit */ | ||
| 161 | #define ICMP_UNREACH_NET 0 /* bad net */ | ||
| 162 | #define ICMP_UNREACH_HOST 1 /* bad host */ | ||
| 163 | #define ICMP_UNREACH_PROTOCOL 2 /* bad protocol */ | ||
| 164 | #define ICMP_UNREACH_PORT 3 /* bad port */ | ||
| 165 | #define ICMP_UNREACH_NEEDFRAG 4 /* IP_DF caused drop */ | ||
| 166 | #define ICMP_UNREACH_SRCFAIL 5 /* src route failed */ | ||
| 167 | #endif | ||
| 168 | |||
| 169 | |||
| 170 | #define MAXPACKET 65535 /* max ip packet size */ | 79 | #define MAXPACKET 65535 /* max ip packet size */ |
| 171 | #ifndef MAXHOSTNAMELEN | 80 | #ifndef MAXHOSTNAMELEN |
| 172 | #define MAXHOSTNAMELEN 64 | 81 | #define MAXHOSTNAMELEN 64 |
diff --git a/networking/wget.c b/networking/wget.c index d68b16524..a9ead7fc2 100644 --- a/networking/wget.c +++ b/networking/wget.c | |||
| @@ -31,19 +31,6 @@ | |||
| 31 | 31 | ||
| 32 | #include "busybox.h" | 32 | #include "busybox.h" |
| 33 | 33 | ||
| 34 | /* Stupid libc5 doesn't define this... */ | ||
| 35 | #ifndef timersub | ||
| 36 | #define timersub(a, b, result) \ | ||
| 37 | do { \ | ||
| 38 | (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ | ||
| 39 | (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \ | ||
| 40 | if ((result)->tv_usec < 0) { \ | ||
| 41 | --(result)->tv_sec; \ | ||
| 42 | (result)->tv_usec += 1000000; \ | ||
| 43 | } \ | ||
| 44 | } while (0) | ||
| 45 | #endif | ||
| 46 | |||
| 47 | struct host_info { | 34 | struct host_info { |
| 48 | char *host; | 35 | char *host; |
| 49 | int port; | 36 | int port; |
| @@ -824,7 +811,7 @@ progressmeter(int flag) | |||
| 824 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | 811 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| 825 | * SUCH DAMAGE. | 812 | * SUCH DAMAGE. |
| 826 | * | 813 | * |
| 827 | * $Id: wget.c,v 1.53 2003/03/19 09:12:39 mjn3 Exp $ | 814 | * $Id: wget.c,v 1.54 2003/07/22 08:56:51 andersen Exp $ |
| 828 | */ | 815 | */ |
| 829 | 816 | ||
| 830 | 817 | ||
diff --git a/shell/cmdedit.c b/shell/cmdedit.c index 350c0fd86..843f73fef 100644 --- a/shell/cmdedit.c +++ b/shell/cmdedit.c | |||
| @@ -163,11 +163,6 @@ static int my_gid; | |||
| 163 | 163 | ||
| 164 | #endif /* CONFIG_FEATURE_COMMAND_TAB_COMPLETION */ | 164 | #endif /* CONFIG_FEATURE_COMMAND_TAB_COMPLETION */ |
| 165 | 165 | ||
| 166 | /* It seems that libc5 doesn't know what a sighandler_t is... */ | ||
| 167 | #if (__GLIBC__ <= 2) && (__GLIBC_MINOR__ < 1) | ||
| 168 | typedef void (*sighandler_t) (int); | ||
| 169 | #endif | ||
| 170 | |||
| 171 | static void cmdedit_setwidth(int w, int redraw_flg); | 166 | static void cmdedit_setwidth(int w, int redraw_flg); |
| 172 | 167 | ||
| 173 | static void win_changed(int nsig) | 168 | static void win_changed(int nsig) |
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c index d32882d33..f537a4bb8 100644 --- a/sysklogd/klogd.c +++ b/sysklogd/klogd.c | |||
| @@ -38,14 +38,7 @@ | |||
| 38 | #include <unistd.h> | 38 | #include <unistd.h> |
| 39 | #include <ctype.h> | 39 | #include <ctype.h> |
| 40 | #include <sys/syslog.h> | 40 | #include <sys/syslog.h> |
| 41 | 41 | #include <sys/klog.h> | |
| 42 | #if __GNU_LIBRARY__ < 5 | ||
| 43 | # ifdef __alpha__ | ||
| 44 | # define klogctl syslog | ||
| 45 | # endif | ||
| 46 | #else | ||
| 47 | # include <sys/klog.h> | ||
| 48 | #endif | ||
| 49 | 42 | ||
| 50 | #include "busybox.h" | 43 | #include "busybox.h" |
| 51 | 44 | ||
diff --git a/sysklogd/logread.c b/sysklogd/logread.c index ae8dbae3a..2692efbee 100644 --- a/sysklogd/logread.c +++ b/sysklogd/logread.c | |||
| @@ -35,13 +35,6 @@ | |||
| 35 | #include <setjmp.h> | 35 | #include <setjmp.h> |
| 36 | #include "busybox.h" | 36 | #include "busybox.h" |
| 37 | 37 | ||
| 38 | #if __GNU_LIBRARY__ < 5 | ||
| 39 | #error Sorry. Looks like you are using libc5. | ||
| 40 | #error libc5 shm support isnt good enough. | ||
| 41 | #error Please disable CONFIG_FEATURE_IPC_SYSLOG | ||
| 42 | #endif | ||
| 43 | |||
| 44 | |||
| 45 | static const long KEY_ID = 0x414e4547; /*"GENA"*/ | 38 | static const long KEY_ID = 0x414e4547; /*"GENA"*/ |
| 46 | 39 | ||
| 47 | static struct shbuf_ds { | 40 | static struct shbuf_ds { |
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index 06dfca6d8..89f8d60ca 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c | |||
| @@ -86,12 +86,6 @@ static int local_logging = FALSE; | |||
| 86 | 86 | ||
| 87 | /* circular buffer variables/structures */ | 87 | /* circular buffer variables/structures */ |
| 88 | #ifdef CONFIG_FEATURE_IPC_SYSLOG | 88 | #ifdef CONFIG_FEATURE_IPC_SYSLOG |
| 89 | #if __GNU_LIBRARY__ < 5 | ||
| 90 | #error Sorry. Looks like you are using libc5. | ||
| 91 | #error libc5 shm support isnt good enough. | ||
| 92 | #error Please disable CONFIG_FEATURE_IPC_SYSLOG | ||
| 93 | #endif | ||
| 94 | |||
| 95 | #include <sys/ipc.h> | 89 | #include <sys/ipc.h> |
| 96 | #include <sys/sem.h> | 90 | #include <sys/sem.h> |
| 97 | #include <sys/shm.h> | 91 | #include <sys/shm.h> |
diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c index 6e0d6947f..0c0d2d7c0 100644 --- a/util-linux/dmesg.c +++ b/util-linux/dmesg.c | |||
| @@ -22,14 +22,7 @@ | |||
| 22 | #include <stdlib.h> | 22 | #include <stdlib.h> |
| 23 | #include <getopt.h> | 23 | #include <getopt.h> |
| 24 | #include <errno.h> | 24 | #include <errno.h> |
| 25 | 25 | #include <sys/klog.h> | |
| 26 | #if __GNU_LIBRARY__ < 5 | ||
| 27 | # ifdef __alpha__ | ||
| 28 | # define klogctl syslog | ||
| 29 | # endif | ||
| 30 | #else | ||
| 31 | # include <sys/klog.h> | ||
| 32 | #endif | ||
| 33 | 26 | ||
| 34 | #include "busybox.h" | 27 | #include "busybox.h" |
| 35 | 28 | ||
diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c index 1f3e930a1..9da70756e 100644 --- a/util-linux/swaponoff.c +++ b/util-linux/swaponoff.c | |||
| @@ -28,14 +28,7 @@ | |||
| 28 | #include <string.h> | 28 | #include <string.h> |
| 29 | #include <stdlib.h> | 29 | #include <stdlib.h> |
| 30 | #include <sys/mount.h> | 30 | #include <sys/mount.h> |
| 31 | |||
| 32 | #if __GNU_LIBRARY__ < 5 | ||
| 33 | /* libc5 doesn't have sys/swap.h, define these here. */ | ||
| 34 | extern int swapon (__const char *__path, int __flags); | ||
| 35 | extern int swapoff (__const char *__path); | ||
| 36 | #else | ||
| 37 | #include <sys/swap.h> | 31 | #include <sys/swap.h> |
| 38 | #endif | ||
| 39 | 32 | ||
| 40 | #include "busybox.h" | 33 | #include "busybox.h" |
| 41 | 34 | ||
