aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-01-27 08:24:39 +0000
committerEric Andersen <andersen@codepoet.org>2001-01-27 08:24:39 +0000
commited3ef50c233ffb1b50ea0e7382a8e60b86491009 (patch)
treeecb05ce51890c2cf84ad036543a972ac812320c3
parentab050f5522e843bf08994685134adaaac7ffd392 (diff)
downloadbusybox-ed3ef50c233ffb1b50ea0e7382a8e60b86491009.tar.gz
Fix header file usage -- there were many unnecessary header files included in
busybox.h which slowed compiles. I left only what was needed and then fixed up all the apps to include their own header files. I also fixed naming for pwd.h and grp.h functions. Tested to compile and run with libc5, glibc, and uClibc. -Erik
-rw-r--r--Config.h8
-rw-r--r--Makefile21
-rw-r--r--applets/busybox.c1
-rw-r--r--ar.c4
-rw-r--r--archival/ar.c4
-rw-r--r--archival/dpkg_deb.c3
-rw-r--r--archival/gzip.c1
-rw-r--r--archival/tar.c3
-rw-r--r--basename.c3
-rw-r--r--busybox.c1
-rw-r--r--busybox.h32
-rw-r--r--cat.c2
-rw-r--r--chmod_chown_chgrp.c3
-rw-r--r--chroot.c1
-rw-r--r--clear.c1
-rw-r--r--cmp.c1
-rw-r--r--console-tools/clear.c1
-rw-r--r--console-tools/dumpkmap.c3
-rw-r--r--console-tools/loadkmap.c3
-rw-r--r--console-tools/reset.c1
-rw-r--r--coreutils/basename.c3
-rw-r--r--coreutils/cat.c2
-rw-r--r--coreutils/chroot.c1
-rw-r--r--coreutils/cmp.c1
-rw-r--r--coreutils/date.c1
-rw-r--r--coreutils/dd.c4
-rw-r--r--coreutils/df.c2
-rw-r--r--coreutils/dirname.c2
-rw-r--r--coreutils/du.c4
-rw-r--r--coreutils/echo.c2
-rw-r--r--coreutils/expr.c4
-rw-r--r--coreutils/head.c2
-rw-r--r--coreutils/hostid.c2
-rw-r--r--coreutils/id.c1
-rw-r--r--coreutils/ln.c3
-rw-r--r--coreutils/logname.c2
-rw-r--r--coreutils/ls.c1
-rw-r--r--coreutils/mkdir.c2
-rw-r--r--coreutils/mkfifo.c1
-rw-r--r--coreutils/mknod.c2
-rw-r--r--coreutils/pwd.c2
-rw-r--r--coreutils/rm.c2
-rw-r--r--coreutils/rmdir.c2
-rw-r--r--coreutils/sleep.c2
-rw-r--r--coreutils/sort.c2
-rw-r--r--coreutils/sync.c1
-rw-r--r--coreutils/tail.c6
-rw-r--r--coreutils/touch.c2
-rw-r--r--coreutils/tr.c4
-rw-r--r--coreutils/tty.c2
-rw-r--r--coreutils/uname.c1
-rw-r--r--coreutils/uniq.c2
-rw-r--r--coreutils/uudecode.c4
-rw-r--r--coreutils/uuencode.c1
-rw-r--r--coreutils/wc.c1
-rw-r--r--coreutils/whoami.c2
-rw-r--r--coreutils/yes.c1
-rw-r--r--cp_mv.c1
-rw-r--r--date.c1
-rw-r--r--dd.c4
-rw-r--r--df.c2
-rw-r--r--dirname.c2
-rw-r--r--dmesg.c4
-rw-r--r--dpkg_deb.c3
-rw-r--r--du.c4
-rw-r--r--dumpkmap.c3
-rw-r--r--dutmp.c4
-rw-r--r--echo.c2
-rw-r--r--editors/sed.c2
-rw-r--r--expr.c4
-rw-r--r--fbset.c1
-rw-r--r--fdflush.c1
-rw-r--r--find.c2
-rw-r--r--findutils/find.c2
-rw-r--r--findutils/grep.c2
-rw-r--r--findutils/which.c2
-rw-r--r--free.c1
-rw-r--r--freeramdisk.c1
-rw-r--r--grep.c2
-rw-r--r--gzip.c1
-rw-r--r--head.c2
-rw-r--r--hostid.c2
-rw-r--r--hostname.c3
-rw-r--r--id.c1
-rw-r--r--include/busybox.h32
-rw-r--r--include/grp.h28
-rw-r--r--include/pwd.h29
-rw-r--r--init.c3
-rw-r--r--init/init.c3
-rw-r--r--insmod.c7
-rw-r--r--kill.c1
-rw-r--r--ln.c3
-rw-r--r--loadkmap.c3
-rw-r--r--logger.c2
-rw-r--r--logname.c2
-rw-r--r--ls.c1
-rw-r--r--miscutils/dutmp.c4
-rw-r--r--miscutils/mktemp.c2
-rw-r--r--miscutils/mt.c1
-rw-r--r--miscutils/readlink.c1
-rw-r--r--miscutils/update.c3
-rw-r--r--miscutils/watchdog.c2
-rw-r--r--mkdir.c2
-rw-r--r--mkfifo.c1
-rw-r--r--mknod.c2
-rw-r--r--mktemp.c2
-rw-r--r--modutils/insmod.c7
-rw-r--r--modutils/rmmod.c3
-rw-r--r--more.c1
-rw-r--r--mt.c1
-rw-r--r--networking/hostname.c3
-rw-r--r--networking/nslookup.c3
-rw-r--r--networking/ping.c5
-rw-r--r--networking/wget.c16
-rw-r--r--nslookup.c3
-rw-r--r--ping.c5
-rw-r--r--procps/free.c1
-rw-r--r--procps/kill.c1
-rw-r--r--procps/ps.c2
-rw-r--r--procps/renice.c1
-rw-r--r--procps/uptime.c1
-rw-r--r--ps.c2
-rw-r--r--pwd.c2
-rw-r--r--rdate.c2
-rw-r--r--readlink.c1
-rw-r--r--renice.c1
-rw-r--r--reset.c1
-rw-r--r--rm.c2
-rw-r--r--rmdir.c2
-rw-r--r--rmmod.c3
-rw-r--r--rpmunpack.c3
-rw-r--r--sed.c2
-rw-r--r--sleep.c2
-rw-r--r--sort.c2
-rw-r--r--swaponoff.c5
-rw-r--r--sync.c1
-rw-r--r--sysklogd/logger.c2
-rw-r--r--sysklogd/syslogd.c4
-rw-r--r--syslogd.c4
-rw-r--r--tail.c6
-rw-r--r--tar.c3
-rw-r--r--touch.c2
-rw-r--r--tr.c4
-rw-r--r--true_false.c1
-rw-r--r--tty.c2
-rw-r--r--umount.c2
-rw-r--r--uname.c1
-rw-r--r--uniq.c2
-rw-r--r--update.c3
-rw-r--r--uptime.c1
-rw-r--r--util-linux/dmesg.c4
-rw-r--r--util-linux/fbset.c1
-rw-r--r--util-linux/fdflush.c1
-rw-r--r--util-linux/freeramdisk.c1
-rw-r--r--util-linux/more.c1
-rw-r--r--util-linux/rdate.c2
-rw-r--r--util-linux/swaponoff.c5
-rw-r--r--util-linux/umount.c2
-rw-r--r--utility.c8
-rw-r--r--uudecode.c4
-rw-r--r--uuencode.c1
-rw-r--r--watchdog.c2
-rw-r--r--wc.c1
-rw-r--r--wget.c16
-rw-r--r--which.c2
-rw-r--r--whoami.c2
-rw-r--r--yes.c1
167 files changed, 388 insertions, 156 deletions
diff --git a/Config.h b/Config.h
index 5e14b4054..b11d84903 100644
--- a/Config.h
+++ b/Config.h
@@ -330,13 +330,9 @@
#endif
#endif
//
-#if defined BB_FEATURE_LINUXRC || defined BB_LINUXRC
#ifndef BB_INIT
-#define BB_INIT
-#endif
-#ifndef BB_LINUXRC
-#define BB_LINUXRC
-#endif
+#undef BB_LINUXRC
+#undef BB_FEATURE_LINUXRC
#endif
//
#ifdef BB_GZIP
diff --git a/Makefile b/Makefile
index d5587ae4f..159e5d5f9 100644
--- a/Makefile
+++ b/Makefile
@@ -81,24 +81,19 @@ CROSS =
CC = $(CROSS)gcc
STRIPTOOL = $(CROSS)strip
-# To compile vs an alternative libc, you may need to use/adjust
-# the following lines to meet your needs. This is how I make
-# busybox compile staticly with uClibc (needs BB_FEATURE_NFSMOUNT
-# disabled at the moment). Note the _full_ path for LIBCDIR.
-# This is because make doesn't do ~ expansion...
-#LIBCDIR=/home/andersen/CVS/uClibc
+# To compile vs uClibc, just use the compiler wrapper built by uClibc...
+# Isn't that easy? Right now, uClibc needs BB_FEATURE_NFSMOUNT disabled
+# since uClibc's nfs support isn't ready yet.
+#CC = ../uClibc/extra/gcc-uClibc/gcc-uClibc-i386
+
+# To compile vs some other alternative libc, you may need to use/adjust
+# the following lines to meet your needs...
+#LIBCDIR=/usr/i486-linuxlibc1/
#LDFLAGS+=-nostdlib
#LIBRARIES = $(LIBCDIR)/libc.a -lgcc
#CROSS_CFLAGS+=-nostdinc -I$(LIBCDIR)/include -I$(GCCINCDIR)
#GCCINCDIR = $(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp")
-# This is how I compile with the uClibc shared lib...
-#LIBCDIR=/home/andersen/CVS/uClibc
-#LDFLAGS+=-nostdlib
-#LIBRARIES = -luClibc -lgcc $(LIBCDIR)/crt0.o
-#CROSS_CFLAGS+=-nostdinc -I$(LIBCDIR)/include -I$(GCCINCDIR)
-#GCCINCDIR = $(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp")
-
#--------------------------------------------------------
# use '-Os' optimization if available, else use -O2
diff --git a/applets/busybox.c b/applets/busybox.c
index 5eb9dfa64..ab3762eb8 100644
--- a/applets/busybox.c
+++ b/applets/busybox.c
@@ -3,6 +3,7 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <stdlib.h>
#undef APPLET
#undef APPLET_NOUSAGE
diff --git a/ar.c b/ar.c
index 596574e6a..550b2a1c4 100644
--- a/ar.c
+++ b/ar.c
@@ -23,6 +23,10 @@
*
*/
#include <fcntl.h>
+#include <string.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <unistd.h>
#include "busybox.h"
typedef struct ar_headers_s {
diff --git a/archival/ar.c b/archival/ar.c
index 596574e6a..550b2a1c4 100644
--- a/archival/ar.c
+++ b/archival/ar.c
@@ -23,6 +23,10 @@
*
*/
#include <fcntl.h>
+#include <string.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <unistd.h>
#include "busybox.h"
typedef struct ar_headers_s {
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c
index 35904950f..3a789379b 100644
--- a/archival/dpkg_deb.c
+++ b/archival/dpkg_deb.c
@@ -17,6 +17,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
#include "busybox.h"
typedef struct ar_headers_s {
diff --git a/archival/gzip.c b/archival/gzip.c
index 09260929e..5a74868c1 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -45,6 +45,7 @@
*/
#include <stdio.h>
#include <string.h>
+#include <unistd.h>
#define memzero(s, n) memset ((void *)(s), 0, (n))
#ifndef RETSIGTYPE
diff --git a/archival/tar.c b/archival/tar.c
index 51a857d71..2c7169bcc 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -52,6 +52,9 @@
#include <sys/sysmacros.h>
#include <getopt.h>
#include <fnmatch.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
#ifdef BB_FEATURE_TAR_GZIP
extern int unzip(int in, int out);
diff --git a/basename.c b/basename.c
index fcc7d4619..0caae39a4 100644
--- a/basename.c
+++ b/basename.c
@@ -22,7 +22,8 @@
*/
#include "busybox.h"
-#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
extern int basename_main(int argc, char **argv)
{
diff --git a/busybox.c b/busybox.c
index 5eb9dfa64..ab3762eb8 100644
--- a/busybox.c
+++ b/busybox.c
@@ -3,6 +3,7 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <stdlib.h>
#undef APPLET
#undef APPLET_NOUSAGE
diff --git a/busybox.h b/busybox.h
index be6c6f305..5f9425a5b 100644
--- a/busybox.h
+++ b/busybox.h
@@ -26,19 +26,10 @@
#include "Config.h"
-#include <stdlib.h>
+#include <stdio.h>
#include <stdarg.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
#include <sys/stat.h>
-#include <sys/param.h>
#include <sys/types.h>
-#include <mntent.h>
-#include <regex.h>
-/* for the _syscall() macros */
-#include <sys/syscall.h>
-#include <linux/unistd.h>
#ifdef DMALLOC
#include "dmalloc.h"
@@ -69,26 +60,6 @@ static inline int is_octal(ch) { return ((ch >= '0') && (ch <= '7')); }
#endif
-/* I don't like nested includes, but the string and io functions are used
- * too often
- */
-#include <stdio.h>
-#if !defined(NO_STRING_H) || defined(STDC_HEADERS)
-# include <string.h>
-# if !defined(STDC_HEADERS) && !defined(NO_MEMORY_H) && !defined(__GNUC__)
-# include <memory.h>
-# endif
-# define memzero(s, n) memset ((void *)(s), 0, (n))
-#else
-# include <strings.h>
-# define strchr index
-# define strrchr rindex
-# define memcpy(d, s, n) bcopy((s), (d), (n))
-# define memcmp(s1, s2, n) bcmp((s1), (s2), (n))
-# define memzero(s, n) bzero((s), (n))
-#endif
-
-
enum Location {
_BB_DIR_ROOT = 0,
_BB_DIR_BIN,
@@ -179,7 +150,6 @@ extern void print_file(FILE *file);
extern int print_file_by_name(char *filename);
extern char process_escape_sequence(char **ptr);
extern char *get_last_path_component(char *path);
-extern void xregcomp(regex_t *preg, const char *regex, int cflags);
extern FILE *wfopen(const char *path, const char *mode);
extern FILE *xfopen(const char *path, const char *mode);
diff --git a/cat.c b/cat.c
index 151ce4e61..a1b878258 100644
--- a/cat.c
+++ b/cat.c
@@ -22,7 +22,7 @@
*/
#include "busybox.h"
-#include <stdio.h>
+#include <stdlib.h>
extern int cat_main(int argc, char **argv)
{
diff --git a/chmod_chown_chgrp.c b/chmod_chown_chgrp.c
index f6ecfd6f8..08ea6eea0 100644
--- a/chmod_chown_chgrp.c
+++ b/chmod_chown_chgrp.c
@@ -29,6 +29,9 @@
#include "messages.c"
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
static long uid = -1;
diff --git a/chroot.c b/chroot.c
index 91d3407f2..e6f1d034b 100644
--- a/chroot.c
+++ b/chroot.c
@@ -25,6 +25,7 @@
#include "busybox.h"
#include <stdlib.h>
#include <stdio.h>
+#include <unistd.h>
#include <errno.h>
int chroot_main(int argc, char **argv)
diff --git a/clear.c b/clear.c
index ca83f3820..98eef1d78 100644
--- a/clear.c
+++ b/clear.c
@@ -24,6 +24,7 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
extern int clear_main(int argc, char **argv)
diff --git a/cmp.c b/cmp.c
index 6b955447c..a4b6c7d49 100644
--- a/cmp.c
+++ b/cmp.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <stdlib.h>
int cmp_main(int argc, char **argv)
{
diff --git a/console-tools/clear.c b/console-tools/clear.c
index ca83f3820..98eef1d78 100644
--- a/console-tools/clear.c
+++ b/console-tools/clear.c
@@ -24,6 +24,7 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
extern int clear_main(int argc, char **argv)
diff --git a/console-tools/dumpkmap.c b/console-tools/dumpkmap.c
index b438ba271..b2067b30c 100644
--- a/console-tools/dumpkmap.c
+++ b/console-tools/dumpkmap.c
@@ -24,6 +24,9 @@
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
#include <sys/ioctl.h>
/* From <linux/kd.h> */
diff --git a/console-tools/loadkmap.c b/console-tools/loadkmap.c
index 43c1cc795..75b40da9a 100644
--- a/console-tools/loadkmap.c
+++ b/console-tools/loadkmap.c
@@ -24,6 +24,9 @@
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
#include <sys/ioctl.h>
#define BINARY_KEYMAP_MAGIC "bkeymap"
diff --git a/console-tools/reset.c b/console-tools/reset.c
index bf8c3ed45..861bd435b 100644
--- a/console-tools/reset.c
+++ b/console-tools/reset.c
@@ -25,6 +25,7 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
extern int reset_main(int argc, char **argv)
{
diff --git a/coreutils/basename.c b/coreutils/basename.c
index fcc7d4619..0caae39a4 100644
--- a/coreutils/basename.c
+++ b/coreutils/basename.c
@@ -22,7 +22,8 @@
*/
#include "busybox.h"
-#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
extern int basename_main(int argc, char **argv)
{
diff --git a/coreutils/cat.c b/coreutils/cat.c
index 151ce4e61..a1b878258 100644
--- a/coreutils/cat.c
+++ b/coreutils/cat.c
@@ -22,7 +22,7 @@
*/
#include "busybox.h"
-#include <stdio.h>
+#include <stdlib.h>
extern int cat_main(int argc, char **argv)
{
diff --git a/coreutils/chroot.c b/coreutils/chroot.c
index 91d3407f2..e6f1d034b 100644
--- a/coreutils/chroot.c
+++ b/coreutils/chroot.c
@@ -25,6 +25,7 @@
#include "busybox.h"
#include <stdlib.h>
#include <stdio.h>
+#include <unistd.h>
#include <errno.h>
int chroot_main(int argc, char **argv)
diff --git a/coreutils/cmp.c b/coreutils/cmp.c
index 6b955447c..a4b6c7d49 100644
--- a/coreutils/cmp.c
+++ b/coreutils/cmp.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <stdlib.h>
int cmp_main(int argc, char **argv)
{
diff --git a/coreutils/date.c b/coreutils/date.c
index 73fc70511..8b6a0620d 100644
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -31,6 +31,7 @@
#include <unistd.h>
#include <time.h>
#include <stdio.h>
+#include <string.h>
#include <getopt.h>
diff --git a/coreutils/dd.c b/coreutils/dd.c
index 32eeb661c..dac9ccdf3 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -24,6 +24,10 @@
#include "busybox.h"
#include <sys/types.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
#include <fcntl.h>
static struct suffix_mult dd_suffixes[] = {
diff --git a/coreutils/df.c b/coreutils/df.c
index 22797fbae..0408f9f54 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -24,8 +24,10 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
#include <mntent.h>
#include <sys/vfs.h>
+#include <getopt.h>
extern const char mtab_file[]; /* Defined in utility.c */
#ifdef BB_FEATURE_HUMAN_READABLE
diff --git a/coreutils/dirname.c b/coreutils/dirname.c
index 63c557a29..333f08d41 100644
--- a/coreutils/dirname.c
+++ b/coreutils/dirname.c
@@ -22,6 +22,8 @@
*/
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
extern int dirname_main(int argc, char **argv)
{
diff --git a/coreutils/du.c b/coreutils/du.c
index 56a7a9a0c..9cc2a673d 100644
--- a/coreutils/du.c
+++ b/coreutils/du.c
@@ -31,6 +31,8 @@
#include <fcntl.h>
#include <dirent.h>
#include <stdio.h>
+#include <stdlib.h>
+#include <getopt.h>
#include <errno.h>
#ifdef BB_FEATURE_HUMAN_READABLE
@@ -185,7 +187,7 @@ int du_main(int argc, char **argv)
return status;
}
-/* $Id: du.c,v 1.34 2001/01/22 22:35:38 rjune Exp $ */
+/* $Id: du.c,v 1.35 2001/01/27 08:24:37 andersen Exp $ */
/*
Local Variables:
c-file-style: "linux"
diff --git a/coreutils/echo.c b/coreutils/echo.c
index 393f4425f..b3e01afec 100644
--- a/coreutils/echo.c
+++ b/coreutils/echo.c
@@ -24,6 +24,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
extern int
echo_main(int argc, char** argv)
diff --git a/coreutils/expr.c b/coreutils/expr.c
index eed2637f2..71bd22417 100644
--- a/coreutils/expr.c
+++ b/coreutils/expr.c
@@ -35,9 +35,11 @@
#include "busybox.h"
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <regex.h>
#include <sys/types.h>
-#include <regex.h>
/* The kinds of value we can have. */
enum valtype {
diff --git a/coreutils/head.c b/coreutils/head.c
index a0ca453de..71aa8258c 100644
--- a/coreutils/head.c
+++ b/coreutils/head.c
@@ -25,6 +25,8 @@
#include "busybox.h"
#include <errno.h>
#include <stdio.h>
+#include <getopt.h>
+#include <stdlib.h>
int head(int len, FILE *fp)
{
diff --git a/coreutils/hostid.c b/coreutils/hostid.c
index 35a5859c4..eed1a50ec 100644
--- a/coreutils/hostid.c
+++ b/coreutils/hostid.c
@@ -22,6 +22,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
extern int hostid_main(int argc, char **argv)
{
diff --git a/coreutils/id.c b/coreutils/id.c
index d50de4775..e91ac7585 100644
--- a/coreutils/id.c
+++ b/coreutils/id.c
@@ -24,6 +24,7 @@
#include <stdio.h>
#include <unistd.h>
#include <getopt.h>
+#include <string.h>
#include <sys/types.h>
extern int id_main(int argc, char **argv)
diff --git a/coreutils/ln.c b/coreutils/ln.c
index e69cb024a..d6bf6443a 100644
--- a/coreutils/ln.c
+++ b/coreutils/ln.c
@@ -28,7 +28,10 @@
#include <stdio.h>
#include <dirent.h>
+#include <string.h>
+#include <stdlib.h>
#include <errno.h>
+#include <unistd.h>
static const int LN_SYMLINK = 1;
static const int LN_FORCE = 2;
diff --git a/coreutils/logname.c b/coreutils/logname.c
index d614e85f1..edec016e6 100644
--- a/coreutils/logname.c
+++ b/coreutils/logname.c
@@ -22,6 +22,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
extern int logname_main(int argc, char **argv)
{
diff --git a/coreutils/ls.c b/coreutils/ls.c
index 4b225d6f8..affa48c12 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -59,6 +59,7 @@ static const int COLUMN_GAP = 2; /* includes the file type char, if present */
#include <time.h>
#endif
#include <string.h>
+#include <stdlib.h>
#include <fcntl.h>
#include <signal.h>
diff --git a/coreutils/mkdir.c b/coreutils/mkdir.c
index 92357a665..eb6e7db7d 100644
--- a/coreutils/mkdir.c
+++ b/coreutils/mkdir.c
@@ -28,6 +28,8 @@
#include <stdio.h>
#include <errno.h>
+#include <string.h>
+#include <stdlib.h>
static int parentFlag = FALSE;
static mode_t mode = 0777;
diff --git a/coreutils/mkfifo.c b/coreutils/mkfifo.c
index 728e1ec2f..b31e6f172 100644
--- a/coreutils/mkfifo.c
+++ b/coreutils/mkfifo.c
@@ -24,6 +24,7 @@
#include <stdio.h>
#include <sys/types.h>
#include <errno.h>
+#include <stdlib.h>
extern int mkfifo_main(int argc, char **argv)
{
diff --git a/coreutils/mknod.c b/coreutils/mknod.c
index 4d8c598ea..c761aea6f 100644
--- a/coreutils/mknod.c
+++ b/coreutils/mknod.c
@@ -26,6 +26,8 @@
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
int mknod_main(int argc, char **argv)
{
diff --git a/coreutils/pwd.c b/coreutils/pwd.c
index da089f37c..a9acbc721 100644
--- a/coreutils/pwd.c
+++ b/coreutils/pwd.c
@@ -25,6 +25,8 @@
#include <stdio.h>
#include <dirent.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int pwd_main(int argc, char **argv)
{
diff --git a/coreutils/rm.c b/coreutils/rm.c
index a9501ec7f..302599ec0 100644
--- a/coreutils/rm.c
+++ b/coreutils/rm.c
@@ -28,6 +28,8 @@
#include <utime.h>
#include <dirent.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
static int recursiveFlag = FALSE;
static int forceFlag = FALSE;
diff --git a/coreutils/rmdir.c b/coreutils/rmdir.c
index f9f82bba4..8c2165e6b 100644
--- a/coreutils/rmdir.c
+++ b/coreutils/rmdir.c
@@ -25,6 +25,8 @@
#include "busybox.h"
#include <stdio.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int rmdir_main(int argc, char **argv)
{
diff --git a/coreutils/sleep.c b/coreutils/sleep.c
index 10eca593e..61b7ce404 100644
--- a/coreutils/sleep.c
+++ b/coreutils/sleep.c
@@ -23,6 +23,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int sleep_main(int argc, char **argv)
{
diff --git a/coreutils/sort.c b/coreutils/sort.c
index efff6b653..2aef2d955 100644
--- a/coreutils/sort.c
+++ b/coreutils/sort.c
@@ -22,6 +22,8 @@
*/
#include "busybox.h"
+#include <getopt.h>
+#include <stdlib.h>
int compare_ascii(const void *x, const void *y)
{
diff --git a/coreutils/sync.c b/coreutils/sync.c
index 8f101cf17..f95c24c6c 100644
--- a/coreutils/sync.c
+++ b/coreutils/sync.c
@@ -23,6 +23,7 @@
#include "busybox.h"
#include <stdio.h>
+#include <unistd.h>
extern int sync_main(int argc, char **argv)
{
diff --git a/coreutils/tail.c b/coreutils/tail.c
index dc5918d6b..40511aa7b 100644
--- a/coreutils/tail.c
+++ b/coreutils/tail.c
@@ -23,8 +23,12 @@
#include "busybox.h"
-#include <sys/types.h>
#include <fcntl.h>
+#include <getopt.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
static struct suffix_mult tail_suffixes[] = {
{ "b", 512 },
diff --git a/coreutils/touch.c b/coreutils/touch.c
index 1b03075e8..fa2f3b609 100644
--- a/coreutils/touch.c
+++ b/coreutils/touch.c
@@ -28,6 +28,8 @@
#include <fcntl.h>
#include <utime.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int touch_main(int argc, char **argv)
{
diff --git a/coreutils/tr.c b/coreutils/tr.c
index 15e3709bb..2717a92db 100644
--- a/coreutils/tr.c
+++ b/coreutils/tr.c
@@ -191,9 +191,9 @@ extern int tr_main(int argc, char **argv)
map(input, input_length, output, output_length);
}
for (i = 0; i < input_length; i++)
- invec[input[i]] = TRUE;
+ invec[(int)input[i]] = TRUE;
for (i = 0; i < output_length; i++)
- outvec[output[i]] = TRUE;
+ outvec[(int)output[i]] = TRUE;
}
convert();
return (0);
diff --git a/coreutils/tty.c b/coreutils/tty.c
index 46201d3e6..2a64b149d 100644
--- a/coreutils/tty.c
+++ b/coreutils/tty.c
@@ -22,6 +22,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
#include <sys/types.h>
extern int tty_main(int argc, char **argv)
diff --git a/coreutils/uname.c b/coreutils/uname.c
index 4f7c643f9..deaffd700 100644
--- a/coreutils/uname.c
+++ b/coreutils/uname.c
@@ -33,6 +33,7 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
#include <sys/types.h>
#include <sys/utsname.h>
diff --git a/coreutils/uniq.c b/coreutils/uniq.c
index c0229aecb..228855962 100644
--- a/coreutils/uniq.c
+++ b/coreutils/uniq.c
@@ -26,7 +26,9 @@
#include "busybox.h"
#include <stdio.h>
#include <string.h>
+#include <getopt.h>
#include <errno.h>
+#include <stdlib.h>
static int print_count;
static int print_uniq = 1;
diff --git a/coreutils/uudecode.c b/coreutils/uudecode.c
index 7b26d2dad..fcfcfd903 100644
--- a/coreutils/uudecode.c
+++ b/coreutils/uudecode.c
@@ -27,6 +27,10 @@
#include <stdio.h>
#include <errno.h>
#include <getopt.h>
+#include <string.h>
+#include <stdlib.h>
+#include "pwd_grp/pwd.h"
+#include "pwd_grp/grp.h"
/*struct passwd *getpwnam();*/
diff --git a/coreutils/uuencode.c b/coreutils/uuencode.c
index 24aabd373..5df49026b 100644
--- a/coreutils/uuencode.c
+++ b/coreutils/uuencode.c
@@ -27,6 +27,7 @@
#include <stdio.h>
#include <errno.h>
#include <getopt.h>
+#include <stdlib.h>
#define RW (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
diff --git a/coreutils/wc.c b/coreutils/wc.c
index e6f753435..619c161a7 100644
--- a/coreutils/wc.c
+++ b/coreutils/wc.c
@@ -23,6 +23,7 @@
#include "busybox.h"
#include <stdio.h>
#include <getopt.h>
+#include <stdlib.h>
static int total_lines, total_words, total_chars, max_length;
static int print_lines, print_words, print_chars, print_length;
diff --git a/coreutils/whoami.c b/coreutils/whoami.c
index d7f0a177c..870ede43e 100644
--- a/coreutils/whoami.c
+++ b/coreutils/whoami.c
@@ -22,6 +22,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
extern int whoami_main(int argc, char **argv)
{
diff --git a/coreutils/yes.c b/coreutils/yes.c
index 46873f3f9..0ce49499f 100644
--- a/coreutils/yes.c
+++ b/coreutils/yes.c
@@ -22,6 +22,7 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
extern int yes_main(int argc, char **argv)
{
diff --git a/cp_mv.c b/cp_mv.c
index 9bcac02d4..41b981b72 100644
--- a/cp_mv.c
+++ b/cp_mv.c
@@ -42,6 +42,7 @@
#include <unistd.h>
#include <errno.h>
#include <getopt.h>
+#include <stdlib.h>
static const int is_cp = 0;
static const int is_mv = 1;
diff --git a/date.c b/date.c
index 73fc70511..8b6a0620d 100644
--- a/date.c
+++ b/date.c
@@ -31,6 +31,7 @@
#include <unistd.h>
#include <time.h>
#include <stdio.h>
+#include <string.h>
#include <getopt.h>
diff --git a/dd.c b/dd.c
index 32eeb661c..dac9ccdf3 100644
--- a/dd.c
+++ b/dd.c
@@ -24,6 +24,10 @@
#include "busybox.h"
#include <sys/types.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
#include <fcntl.h>
static struct suffix_mult dd_suffixes[] = {
diff --git a/df.c b/df.c
index 22797fbae..0408f9f54 100644
--- a/df.c
+++ b/df.c
@@ -24,8 +24,10 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
#include <mntent.h>
#include <sys/vfs.h>
+#include <getopt.h>
extern const char mtab_file[]; /* Defined in utility.c */
#ifdef BB_FEATURE_HUMAN_READABLE
diff --git a/dirname.c b/dirname.c
index 63c557a29..333f08d41 100644
--- a/dirname.c
+++ b/dirname.c
@@ -22,6 +22,8 @@
*/
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
extern int dirname_main(int argc, char **argv)
{
diff --git a/dmesg.c b/dmesg.c
index c220d9018..c21f84c9a 100644
--- a/dmesg.c
+++ b/dmesg.c
@@ -18,9 +18,11 @@
#include "busybox.h"
#include <stdio.h>
#include <stdlib.h>
+#include <getopt.h>
#if __GNU_LIBRARY__ < 5
-
+#include <sys/syscall.h>
+#include <linux/unistd.h>
#ifndef __alpha__
# define __NR_klogctl __NR_syslog
static inline _syscall3(int, klogctl, int, type, char *, b, int, len);
diff --git a/dpkg_deb.c b/dpkg_deb.c
index 35904950f..3a789379b 100644
--- a/dpkg_deb.c
+++ b/dpkg_deb.c
@@ -17,6 +17,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
#include "busybox.h"
typedef struct ar_headers_s {
diff --git a/du.c b/du.c
index 56a7a9a0c..9cc2a673d 100644
--- a/du.c
+++ b/du.c
@@ -31,6 +31,8 @@
#include <fcntl.h>
#include <dirent.h>
#include <stdio.h>
+#include <stdlib.h>
+#include <getopt.h>
#include <errno.h>
#ifdef BB_FEATURE_HUMAN_READABLE
@@ -185,7 +187,7 @@ int du_main(int argc, char **argv)
return status;
}
-/* $Id: du.c,v 1.34 2001/01/22 22:35:38 rjune Exp $ */
+/* $Id: du.c,v 1.35 2001/01/27 08:24:37 andersen Exp $ */
/*
Local Variables:
c-file-style: "linux"
diff --git a/dumpkmap.c b/dumpkmap.c
index b438ba271..b2067b30c 100644
--- a/dumpkmap.c
+++ b/dumpkmap.c
@@ -24,6 +24,9 @@
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
#include <sys/ioctl.h>
/* From <linux/kd.h> */
diff --git a/dutmp.c b/dutmp.c
index efd15dfbf..7e1d2eed7 100644
--- a/dutmp.c
+++ b/dutmp.c
@@ -21,6 +21,8 @@
#define bb_need_io_error
#include "messages.c"
#include <utmp.h>
+#include <stdlib.h>
+#include <unistd.h>
extern int dutmp_main(int argc, char **argv)
{
@@ -35,7 +37,7 @@ extern int dutmp_main(int argc, char **argv)
} else {
file = open(argv[1], O_RDONLY);
if (file < 0) {
- error_msg_and_die(io_error, argv[1], strerror(errno));
+ perror_msg_and_die(io_error, argv[1]);
}
}
diff --git a/echo.c b/echo.c
index 393f4425f..b3e01afec 100644
--- a/echo.c
+++ b/echo.c
@@ -24,6 +24,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
extern int
echo_main(int argc, char** argv)
diff --git a/editors/sed.c b/editors/sed.c
index a50d8d03b..95aad79e8 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -47,9 +47,11 @@
#include <string.h> /* for strdup() */
#include <errno.h>
#include <ctype.h> /* for isspace() */
+#include <stdlib.h>
#include "busybox.h"
/* externs */
+extern void xregcomp(regex_t *preg, const char *regex, int cflags);
extern int optind; /* in unistd.h */
extern char *optarg; /* ditto */
diff --git a/expr.c b/expr.c
index eed2637f2..71bd22417 100644
--- a/expr.c
+++ b/expr.c
@@ -35,9 +35,11 @@
#include "busybox.h"
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <regex.h>
#include <sys/types.h>
-#include <regex.h>
/* The kinds of value we can have. */
enum valtype {
diff --git a/fbset.c b/fbset.c
index 845be8442..637896bed 100644
--- a/fbset.c
+++ b/fbset.c
@@ -31,6 +31,7 @@
#include <fcntl.h>
#include <errno.h>
#include <ctype.h>
+#include <string.h>
#include <sys/ioctl.h>
#define DEFAULTFBDEV "/dev/fb0"
diff --git a/fdflush.c b/fdflush.c
index 5eb93ddd7..fcf8ddd28 100644
--- a/fdflush.c
+++ b/fdflush.c
@@ -25,6 +25,7 @@
#include <stdio.h>
#include <sys/ioctl.h>
#include <fcntl.h>
+#include <stdlib.h>
/* From <linux/fd.h> */
#define FDFLUSH _IO(2,0x4b)
diff --git a/find.c b/find.c
index 32d7db7ab..59a5b838d 100644
--- a/find.c
+++ b/find.c
@@ -26,6 +26,8 @@
#include <stdio.h>
#include <unistd.h>
#include <dirent.h>
+#include <string.h>
+#include <stdlib.h>
static char *pattern = NULL;
diff --git a/findutils/find.c b/findutils/find.c
index 32d7db7ab..59a5b838d 100644
--- a/findutils/find.c
+++ b/findutils/find.c
@@ -26,6 +26,8 @@
#include <stdio.h>
#include <unistd.h>
#include <dirent.h>
+#include <string.h>
+#include <stdlib.h>
static char *pattern = NULL;
diff --git a/findutils/grep.c b/findutils/grep.c
index 0ed9594b0..e9ff91b3e 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -28,6 +28,8 @@
#include <errno.h>
#include "busybox.h"
+extern void xregcomp(regex_t *preg, const char *regex, int cflags);
+
extern int optind; /* in unistd.h */
extern int errno; /* for use with strerror() */
diff --git a/findutils/which.c b/findutils/which.c
index a92777eb7..b900a0b14 100644
--- a/findutils/which.c
+++ b/findutils/which.c
@@ -22,7 +22,9 @@
*/
#include "busybox.h"
+#include <string.h>
#include <stdio.h>
+#include <stdlib.h>
extern int which_main(int argc, char **argv)
{
diff --git a/free.c b/free.c
index f2e746e39..4dd99ab49 100644
--- a/free.c
+++ b/free.c
@@ -24,6 +24,7 @@
#include "busybox.h"
#include <stdio.h>
#include <errno.h>
+#include <stdlib.h>
extern int free_main(int argc, char **argv)
{
diff --git a/freeramdisk.c b/freeramdisk.c
index a2b17c673..8f90f40b5 100644
--- a/freeramdisk.c
+++ b/freeramdisk.c
@@ -27,6 +27,7 @@
#include <fcntl.h>
#include <sys/ioctl.h>
#include <errno.h>
+#include <stdlib.h>
#include "busybox.h"
diff --git a/grep.c b/grep.c
index 0ed9594b0..e9ff91b3e 100644
--- a/grep.c
+++ b/grep.c
@@ -28,6 +28,8 @@
#include <errno.h>
#include "busybox.h"
+extern void xregcomp(regex_t *preg, const char *regex, int cflags);
+
extern int optind; /* in unistd.h */
extern int errno; /* for use with strerror() */
diff --git a/gzip.c b/gzip.c
index 09260929e..5a74868c1 100644
--- a/gzip.c
+++ b/gzip.c
@@ -45,6 +45,7 @@
*/
#include <stdio.h>
#include <string.h>
+#include <unistd.h>
#define memzero(s, n) memset ((void *)(s), 0, (n))
#ifndef RETSIGTYPE
diff --git a/head.c b/head.c
index a0ca453de..71aa8258c 100644
--- a/head.c
+++ b/head.c
@@ -25,6 +25,8 @@
#include "busybox.h"
#include <errno.h>
#include <stdio.h>
+#include <getopt.h>
+#include <stdlib.h>
int head(int len, FILE *fp)
{
diff --git a/hostid.c b/hostid.c
index 35a5859c4..eed1a50ec 100644
--- a/hostid.c
+++ b/hostid.c
@@ -22,6 +22,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
extern int hostid_main(int argc, char **argv)
{
diff --git a/hostname.c b/hostname.c
index b1f061369..a789fa0f1 100644
--- a/hostname.c
+++ b/hostname.c
@@ -1,6 +1,6 @@
/* vi: set sw=4 ts=4: */
/*
- * $Id: hostname.c,v 1.20 2001/01/24 18:44:54 andersen Exp $
+ * $Id: hostname.c,v 1.21 2001/01/27 08:24:37 andersen Exp $
* Mini hostname implementation for busybox
*
* Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -28,6 +28,7 @@
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
+#include <string.h>
#include <stdio.h>
void do_sethostname(char *s, int isfile)
diff --git a/id.c b/id.c
index d50de4775..e91ac7585 100644
--- a/id.c
+++ b/id.c
@@ -24,6 +24,7 @@
#include <stdio.h>
#include <unistd.h>
#include <getopt.h>
+#include <string.h>
#include <sys/types.h>
extern int id_main(int argc, char **argv)
diff --git a/include/busybox.h b/include/busybox.h
index be6c6f305..5f9425a5b 100644
--- a/include/busybox.h
+++ b/include/busybox.h
@@ -26,19 +26,10 @@
#include "Config.h"
-#include <stdlib.h>
+#include <stdio.h>
#include <stdarg.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
#include <sys/stat.h>
-#include <sys/param.h>
#include <sys/types.h>
-#include <mntent.h>
-#include <regex.h>
-/* for the _syscall() macros */
-#include <sys/syscall.h>
-#include <linux/unistd.h>
#ifdef DMALLOC
#include "dmalloc.h"
@@ -69,26 +60,6 @@ static inline int is_octal(ch) { return ((ch >= '0') && (ch <= '7')); }
#endif
-/* I don't like nested includes, but the string and io functions are used
- * too often
- */
-#include <stdio.h>
-#if !defined(NO_STRING_H) || defined(STDC_HEADERS)
-# include <string.h>
-# if !defined(STDC_HEADERS) && !defined(NO_MEMORY_H) && !defined(__GNUC__)
-# include <memory.h>
-# endif
-# define memzero(s, n) memset ((void *)(s), 0, (n))
-#else
-# include <strings.h>
-# define strchr index
-# define strrchr rindex
-# define memcpy(d, s, n) bcopy((s), (d), (n))
-# define memcmp(s1, s2, n) bcmp((s1), (s2), (n))
-# define memzero(s, n) bzero((s), (n))
-#endif
-
-
enum Location {
_BB_DIR_ROOT = 0,
_BB_DIR_BIN,
@@ -179,7 +150,6 @@ extern void print_file(FILE *file);
extern int print_file_by_name(char *filename);
extern char process_escape_sequence(char **ptr);
extern char *get_last_path_component(char *path);
-extern void xregcomp(regex_t *preg, const char *regex, int cflags);
extern FILE *wfopen(const char *path, const char *mode);
extern FILE *xfopen(const char *path, const char *mode);
diff --git a/include/grp.h b/include/grp.h
index f27c466fd..87d4115ce 100644
--- a/include/grp.h
+++ b/include/grp.h
@@ -5,16 +5,6 @@
#include <grp.h>
#else
-#define bb_setgrent setgrent
-#define bb_endgrent endgrent
-#define bb_getgrent getgrent
-#define bb_getgrgid getgrgid
-#define bb_getgrnam getgrnam
-#define bb_fgetgrent fgetgrent
-#define bb_setgroups setgroups
-#define bb_initgroups initgroups
-#define __bb_getgrent __getgrent
-
#include <sys/types.h>
#include <features.h>
#include <stdio.h>
@@ -28,19 +18,19 @@ struct group
char **gr_mem; /* Member list. */
};
-extern void bb_setgrent __P ((void));
-extern void bb_endgrent __P ((void));
-extern struct group * bb_getgrent __P ((void));
+extern void setgrent __P ((void));
+extern void endgrent __P ((void));
+extern struct group * getgrent __P ((void));
-extern struct group * bb_getgrgid __P ((__const gid_t gid));
-extern struct group * bb_getgrnam __P ((__const char * name));
+extern struct group * getgrgid __P ((__const gid_t gid));
+extern struct group * getgrnam __P ((__const char * name));
-extern struct group * bb_fgetgrent __P ((FILE * file));
+extern struct group * fgetgrent __P ((FILE * file));
-extern int bb_setgroups __P ((size_t n, __const gid_t * groups));
-extern int bb_initgroups __P ((__const char * user, gid_t gid));
+extern int setgroups __P ((size_t n, __const gid_t * groups));
+extern int initgroups __P ((__const char * user, gid_t gid));
-extern struct group * __bb_getgrent __P ((int grp_fd));
+extern struct group * __getgrent __P ((int grp_fd));
#endif /* USE_SYSTEM_PWD_GRP */
#endif /* __BB_GRP_H */
diff --git a/include/pwd.h b/include/pwd.h
index 82743f5ad..e603a96e3 100644
--- a/include/pwd.h
+++ b/include/pwd.h
@@ -5,17 +5,6 @@
#include <pwd.h>
#else
-#define bb_setpwent setpwent
-#define bb_endpwent endpwent
-#define bb_getpwent getpwent
-#define bb_putpwent putpwent
-#define bb_getpw getpw
-#define bb_fgetpwent fgetpwent
-#define bb_getpwuid getpwuid
-#define bb_getpwnam getpwnam
-#define __bb_getpwent __bb_getpwent
-
-
#include <sys/types.h>
#include <features.h>
#include <stdio.h>
@@ -32,19 +21,19 @@ struct passwd
char *pw_shell; /* Shell program. */
};
-extern void bb_setpwent __P ((void));
-extern void bb_endpwent __P ((void));
-extern struct passwd * bb_getpwent __P ((void));
+extern void setpwent __P ((void));
+extern void endpwent __P ((void));
+extern struct passwd * getpwent __P ((void));
-extern int bb_putpwent __P ((__const struct passwd * __p, FILE * __f));
-extern int bb_getpw __P ((uid_t uid, char *buf));
+extern int putpwent __P ((__const struct passwd * __p, FILE * __f));
+extern int getpw __P ((uid_t uid, char *buf));
-extern struct passwd * bb_fgetpwent __P ((FILE * file));
+extern struct passwd * fgetpwent __P ((FILE * file));
-extern struct passwd * bb_getpwuid __P ((__const uid_t));
-extern struct passwd * bb_getpwnam __P ((__const char *));
+extern struct passwd * getpwuid __P ((__const uid_t));
+extern struct passwd * getpwnam __P ((__const char *));
-extern struct passwd * __bb_getpwent __P ((__const int passwd_fd));
+extern struct passwd * __getpwent __P ((__const int passwd_fd));
#endif /* USE_SYSTEM_PWD_GRP */
#endif /* __BB_PWD_H */
diff --git a/init.c b/init.c
index 86906487f..5d0d924ad 100644
--- a/init.c
+++ b/init.c
@@ -37,6 +37,7 @@
#include <string.h>
#include <termios.h>
#include <unistd.h>
+#include <limits.h>
#include <sys/fcntl.h>
#include <sys/ioctl.h>
#include <sys/mount.h>
@@ -114,6 +115,8 @@ static const int RB_AUTOBOOT = 0x01234567;
#if defined(__GLIBC__)
#include <sys/kdaemon.h>
#else
+#include <sys/syscall.h>
+#include <linux/unistd.h>
static _syscall2(int, bdflush, int, func, int, data);
#endif /* __GLIBC__ */
diff --git a/init/init.c b/init/init.c
index 86906487f..5d0d924ad 100644
--- a/init/init.c
+++ b/init/init.c
@@ -37,6 +37,7 @@
#include <string.h>
#include <termios.h>
#include <unistd.h>
+#include <limits.h>
#include <sys/fcntl.h>
#include <sys/ioctl.h>
#include <sys/mount.h>
@@ -114,6 +115,8 @@ static const int RB_AUTOBOOT = 0x01234567;
#if defined(__GLIBC__)
#include <sys/kdaemon.h>
#else
+#include <sys/syscall.h>
+#include <linux/unistd.h>
static _syscall2(int, bdflush, int, func, int, data);
#endif /* __GLIBC__ */
diff --git a/insmod.c b/insmod.c
index 6ac2dcda4..b82728a26 100644
--- a/insmod.c
+++ b/insmod.c
@@ -46,8 +46,11 @@
#include <dirent.h>
#include <ctype.h>
#include <assert.h>
+#include <string.h>
#include <getopt.h>
#include <sys/utsname.h>
+#include <sys/syscall.h>
+#include <linux/unistd.h>
//----------------------------------------------------------------------------
//--------modutils module.h, lines 45-242
@@ -78,7 +81,7 @@
#ifndef MODUTILS_MODULE_H
static const int MODUTILS_MODULE_H = 1;
-#ident "$Id: insmod.c,v 1.42 2001/01/26 02:23:57 andersen Exp $"
+#ident "$Id: insmod.c,v 1.43 2001/01/27 08:24:37 andersen Exp $"
/* This file contains the structures used by the 2.0 and 2.1 kernels.
We do not use the kernel headers directly because we do not wish
@@ -284,7 +287,7 @@ int delete_module(const char *);
#ifndef MODUTILS_OBJ_H
static const int MODUTILS_OBJ_H = 1;
-#ident "$Id: insmod.c,v 1.42 2001/01/26 02:23:57 andersen Exp $"
+#ident "$Id: insmod.c,v 1.43 2001/01/27 08:24:37 andersen Exp $"
/* The relocatable object is manipulated using elfin types. */
diff --git a/kill.c b/kill.c
index 19ca187a7..3eb829abf 100644
--- a/kill.c
+++ b/kill.c
@@ -28,6 +28,7 @@
#include <unistd.h>
#include <signal.h>
#include <ctype.h>
+#include <string.h>
#include <unistd.h>
static const int KILL = 0;
diff --git a/ln.c b/ln.c
index e69cb024a..d6bf6443a 100644
--- a/ln.c
+++ b/ln.c
@@ -28,7 +28,10 @@
#include <stdio.h>
#include <dirent.h>
+#include <string.h>
+#include <stdlib.h>
#include <errno.h>
+#include <unistd.h>
static const int LN_SYMLINK = 1;
static const int LN_FORCE = 2;
diff --git a/loadkmap.c b/loadkmap.c
index 43c1cc795..75b40da9a 100644
--- a/loadkmap.c
+++ b/loadkmap.c
@@ -24,6 +24,9 @@
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
#include <sys/ioctl.h>
#define BINARY_KEYMAP_MAGIC "bkeymap"
diff --git a/logger.c b/logger.c
index 3d02979c8..d286f34d1 100644
--- a/logger.c
+++ b/logger.c
@@ -27,6 +27,8 @@
#include <sys/types.h>
#include <fcntl.h>
#include <ctype.h>
+#include <string.h>
+#include <stdlib.h>
#if !defined BB_SYSLOGD
diff --git a/logname.c b/logname.c
index d614e85f1..edec016e6 100644
--- a/logname.c
+++ b/logname.c
@@ -22,6 +22,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
extern int logname_main(int argc, char **argv)
{
diff --git a/ls.c b/ls.c
index 4b225d6f8..affa48c12 100644
--- a/ls.c
+++ b/ls.c
@@ -59,6 +59,7 @@ static const int COLUMN_GAP = 2; /* includes the file type char, if present */
#include <time.h>
#endif
#include <string.h>
+#include <stdlib.h>
#include <fcntl.h>
#include <signal.h>
diff --git a/miscutils/dutmp.c b/miscutils/dutmp.c
index efd15dfbf..7e1d2eed7 100644
--- a/miscutils/dutmp.c
+++ b/miscutils/dutmp.c
@@ -21,6 +21,8 @@
#define bb_need_io_error
#include "messages.c"
#include <utmp.h>
+#include <stdlib.h>
+#include <unistd.h>
extern int dutmp_main(int argc, char **argv)
{
@@ -35,7 +37,7 @@ extern int dutmp_main(int argc, char **argv)
} else {
file = open(argv[1], O_RDONLY);
if (file < 0) {
- error_msg_and_die(io_error, argv[1], strerror(errno));
+ perror_msg_and_die(io_error, argv[1]);
}
}
diff --git a/miscutils/mktemp.c b/miscutils/mktemp.c
index 2d53cc2a4..3b9f2b22c 100644
--- a/miscutils/mktemp.c
+++ b/miscutils/mktemp.c
@@ -25,6 +25,8 @@
#include "busybox.h"
#include <stdio.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int mktemp_main(int argc, char **argv)
{
diff --git a/miscutils/mt.c b/miscutils/mt.c
index 70d03cca4..0d28339b9 100644
--- a/miscutils/mt.c
+++ b/miscutils/mt.c
@@ -1,6 +1,7 @@
/* vi: set sw=4 ts=4: */
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
#include <sys/mtio.h>
#include <sys/fcntl.h>
diff --git a/miscutils/readlink.c b/miscutils/readlink.c
index bb2056a25..98f1dea4f 100644
--- a/miscutils/readlink.c
+++ b/miscutils/readlink.c
@@ -25,6 +25,7 @@
#include "busybox.h"
#include <errno.h>
#include <unistd.h>
+#include <stdlib.h>
int readlink_main(int argc, char **argv)
{
diff --git a/miscutils/update.c b/miscutils/update.c
index 080cb99c3..309ce0cbd 100644
--- a/miscutils/update.c
+++ b/miscutils/update.c
@@ -32,11 +32,14 @@
#include <sys/param.h>
#include <sys/syslog.h>
#include <unistd.h> /* for getopt() */
+#include <stdlib.h>
#if defined(__GLIBC__)
#include <sys/kdaemon.h>
#else
+#include <sys/syscall.h>
+#include <linux/unistd.h>
static _syscall2(int, bdflush, int, func, int, data);
#endif /* __GLIBC__ */
diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c
index d297afa02..7026cc005 100644
--- a/miscutils/watchdog.c
+++ b/miscutils/watchdog.c
@@ -23,6 +23,8 @@
#include "busybox.h"
#include <stdio.h>
#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int watchdog_main(int argc, char **argv)
{
diff --git a/mkdir.c b/mkdir.c
index 92357a665..eb6e7db7d 100644
--- a/mkdir.c
+++ b/mkdir.c
@@ -28,6 +28,8 @@
#include <stdio.h>
#include <errno.h>
+#include <string.h>
+#include <stdlib.h>
static int parentFlag = FALSE;
static mode_t mode = 0777;
diff --git a/mkfifo.c b/mkfifo.c
index 728e1ec2f..b31e6f172 100644
--- a/mkfifo.c
+++ b/mkfifo.c
@@ -24,6 +24,7 @@
#include <stdio.h>
#include <sys/types.h>
#include <errno.h>
+#include <stdlib.h>
extern int mkfifo_main(int argc, char **argv)
{
diff --git a/mknod.c b/mknod.c
index 4d8c598ea..c761aea6f 100644
--- a/mknod.c
+++ b/mknod.c
@@ -26,6 +26,8 @@
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
int mknod_main(int argc, char **argv)
{
diff --git a/mktemp.c b/mktemp.c
index 2d53cc2a4..3b9f2b22c 100644
--- a/mktemp.c
+++ b/mktemp.c
@@ -25,6 +25,8 @@
#include "busybox.h"
#include <stdio.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int mktemp_main(int argc, char **argv)
{
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 6ac2dcda4..b82728a26 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -46,8 +46,11 @@
#include <dirent.h>
#include <ctype.h>
#include <assert.h>
+#include <string.h>
#include <getopt.h>
#include <sys/utsname.h>
+#include <sys/syscall.h>
+#include <linux/unistd.h>
//----------------------------------------------------------------------------
//--------modutils module.h, lines 45-242
@@ -78,7 +81,7 @@
#ifndef MODUTILS_MODULE_H
static const int MODUTILS_MODULE_H = 1;
-#ident "$Id: insmod.c,v 1.42 2001/01/26 02:23:57 andersen Exp $"
+#ident "$Id: insmod.c,v 1.43 2001/01/27 08:24:37 andersen Exp $"
/* This file contains the structures used by the 2.0 and 2.1 kernels.
We do not use the kernel headers directly because we do not wish
@@ -284,7 +287,7 @@ int delete_module(const char *);
#ifndef MODUTILS_OBJ_H
static const int MODUTILS_OBJ_H = 1;
-#ident "$Id: insmod.c,v 1.42 2001/01/26 02:23:57 andersen Exp $"
+#ident "$Id: insmod.c,v 1.43 2001/01/27 08:24:37 andersen Exp $"
/* The relocatable object is manipulated using elfin types. */
diff --git a/modutils/rmmod.c b/modutils/rmmod.c
index 52adc7bcd..ff08c4ca0 100644
--- a/modutils/rmmod.c
+++ b/modutils/rmmod.c
@@ -25,6 +25,9 @@
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
+#include <stdlib.h>
+#include <sys/syscall.h>
+#include <linux/unistd.h>
#define __LIBRARY__
diff --git a/more.c b/more.c
index 03cb3bc2b..c4c74fe4a 100644
--- a/more.c
+++ b/more.c
@@ -29,6 +29,7 @@
#include <stdio.h>
#include <fcntl.h>
#include <signal.h>
+#include <stdlib.h>
#include <sys/ioctl.h>
#define BB_DECLARE_EXTERN
#define bb_need_help
diff --git a/mt.c b/mt.c
index 70d03cca4..0d28339b9 100644
--- a/mt.c
+++ b/mt.c
@@ -1,6 +1,7 @@
/* vi: set sw=4 ts=4: */
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
#include <sys/mtio.h>
#include <sys/fcntl.h>
diff --git a/networking/hostname.c b/networking/hostname.c
index b1f061369..a789fa0f1 100644
--- a/networking/hostname.c
+++ b/networking/hostname.c
@@ -1,6 +1,6 @@
/* vi: set sw=4 ts=4: */
/*
- * $Id: hostname.c,v 1.20 2001/01/24 18:44:54 andersen Exp $
+ * $Id: hostname.c,v 1.21 2001/01/27 08:24:37 andersen Exp $
* Mini hostname implementation for busybox
*
* Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -28,6 +28,7 @@
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
+#include <string.h>
#include <stdio.h>
void do_sethostname(char *s, int isfile)
diff --git a/networking/nslookup.c b/networking/nslookup.c
index 271518f22..1f37e313f 100644
--- a/networking/nslookup.c
+++ b/networking/nslookup.c
@@ -26,6 +26,7 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <netdb.h>
#include <sys/socket.h>
@@ -169,4 +170,4 @@ int nslookup_main(int argc, char **argv)
return EXIT_SUCCESS;
}
-/* $Id: nslookup.c,v 1.18 2001/01/24 18:44:54 andersen Exp $ */
+/* $Id: nslookup.c,v 1.19 2001/01/27 08:24:37 andersen Exp $ */
diff --git a/networking/ping.c b/networking/ping.c
index 37ca26f31..a2e916362 100644
--- a/networking/ping.c
+++ b/networking/ping.c
@@ -1,6 +1,6 @@
/* vi: set sw=4 ts=4: */
/*
- * $Id: ping.c,v 1.34 2001/01/24 18:44:54 andersen Exp $
+ * $Id: ping.c,v 1.35 2001/01/27 08:24:37 andersen Exp $
* Mini ping implementation for busybox
*
* Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -47,6 +47,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
/* It turns out that libc5 doesn't have proper icmp support
diff --git a/networking/wget.c b/networking/wget.c
index 2c38cb08e..438ecba2e 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -33,6 +33,18 @@
#include <arpa/inet.h>
#include <netdb.h>
+/* Stupid libc5 doesn't define this... */
+#ifndef timersub
+#define timersub(a, b, result) \
+ do { \
+ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
+ (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
+ if ((result)->tv_usec < 0) { \
+ --(result)->tv_sec; \
+ (result)->tv_usec += 1000000; \
+ } \
+ } while (0)
+#endif
void parse_url(char *url, char **uri_host, int *uri_port, char **uri_path);
FILE *open_socket(char *host, int port);
@@ -283,7 +295,7 @@ FILE *open_socket(char *host, int port)
int fd;
FILE *fp;
- memzero(&sin, sizeof(sin));
+ memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
if ((hp = (struct hostent *) gethostbyname(host)) == NULL)
error_msg_and_die("cannot resolve %s\n", host);
@@ -521,7 +533,7 @@ progressmeter(int flag)
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: wget.c,v 1.22 2001/01/26 02:04:49 andersen Exp $
+ * $Id: wget.c,v 1.23 2001/01/27 08:24:38 andersen Exp $
*/
diff --git a/nslookup.c b/nslookup.c
index 271518f22..1f37e313f 100644
--- a/nslookup.c
+++ b/nslookup.c
@@ -26,6 +26,7 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <netdb.h>
#include <sys/socket.h>
@@ -169,4 +170,4 @@ int nslookup_main(int argc, char **argv)
return EXIT_SUCCESS;
}
-/* $Id: nslookup.c,v 1.18 2001/01/24 18:44:54 andersen Exp $ */
+/* $Id: nslookup.c,v 1.19 2001/01/27 08:24:37 andersen Exp $ */
diff --git a/ping.c b/ping.c
index 37ca26f31..a2e916362 100644
--- a/ping.c
+++ b/ping.c
@@ -1,6 +1,6 @@
/* vi: set sw=4 ts=4: */
/*
- * $Id: ping.c,v 1.34 2001/01/24 18:44:54 andersen Exp $
+ * $Id: ping.c,v 1.35 2001/01/27 08:24:37 andersen Exp $
* Mini ping implementation for busybox
*
* Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -47,6 +47,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
/* It turns out that libc5 doesn't have proper icmp support
diff --git a/procps/free.c b/procps/free.c
index f2e746e39..4dd99ab49 100644
--- a/procps/free.c
+++ b/procps/free.c
@@ -24,6 +24,7 @@
#include "busybox.h"
#include <stdio.h>
#include <errno.h>
+#include <stdlib.h>
extern int free_main(int argc, char **argv)
{
diff --git a/procps/kill.c b/procps/kill.c
index 19ca187a7..3eb829abf 100644
--- a/procps/kill.c
+++ b/procps/kill.c
@@ -28,6 +28,7 @@
#include <unistd.h>
#include <signal.h>
#include <ctype.h>
+#include <string.h>
#include <unistd.h>
static const int KILL = 0;
diff --git a/procps/ps.c b/procps/ps.c
index cb4c21e32..aac064c2a 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -30,11 +30,13 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
#include <unistd.h>
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <ctype.h>
+#include <string.h>
#include <sys/ioctl.h>
#define BB_DECLARE_EXTERN
#define bb_need_help
diff --git a/procps/renice.c b/procps/renice.c
index 8f0618126..9d85ba0d0 100644
--- a/procps/renice.c
+++ b/procps/renice.c
@@ -23,6 +23,7 @@
#include "busybox.h"
#include <stdio.h>
#include <errno.h>
+#include <stdlib.h>
#include <sys/time.h>
#include <sys/resource.h>
diff --git a/procps/uptime.c b/procps/uptime.c
index b827f7e67..4463b94ef 100644
--- a/procps/uptime.c
+++ b/procps/uptime.c
@@ -32,6 +32,7 @@
#include <stdio.h>
#include <time.h>
#include <errno.h>
+#include <stdlib.h>
static const int FSHIFT = 16; /* nr of bits of precision */
#define FIXED_1 (1<<FSHIFT) /* 1.0 as fixed-point */
diff --git a/ps.c b/ps.c
index cb4c21e32..aac064c2a 100644
--- a/ps.c
+++ b/ps.c
@@ -30,11 +30,13 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
#include <unistd.h>
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <ctype.h>
+#include <string.h>
#include <sys/ioctl.h>
#define BB_DECLARE_EXTERN
#define bb_need_help
diff --git a/pwd.c b/pwd.c
index da089f37c..a9acbc721 100644
--- a/pwd.c
+++ b/pwd.c
@@ -25,6 +25,8 @@
#include <stdio.h>
#include <dirent.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int pwd_main(int argc, char **argv)
{
diff --git a/rdate.c b/rdate.c
index 954982ae9..0ad339be8 100644
--- a/rdate.c
+++ b/rdate.c
@@ -31,6 +31,8 @@
#include <netdb.h>
#include <stdio.h>
#include <getopt.h>
+#include <stdlib.h>
+#include <unistd.h>
static const int RFC_868_BIAS = 2208988800UL;
diff --git a/readlink.c b/readlink.c
index bb2056a25..98f1dea4f 100644
--- a/readlink.c
+++ b/readlink.c
@@ -25,6 +25,7 @@
#include "busybox.h"
#include <errno.h>
#include <unistd.h>
+#include <stdlib.h>
int readlink_main(int argc, char **argv)
{
diff --git a/renice.c b/renice.c
index 8f0618126..9d85ba0d0 100644
--- a/renice.c
+++ b/renice.c
@@ -23,6 +23,7 @@
#include "busybox.h"
#include <stdio.h>
#include <errno.h>
+#include <stdlib.h>
#include <sys/time.h>
#include <sys/resource.h>
diff --git a/reset.c b/reset.c
index bf8c3ed45..861bd435b 100644
--- a/reset.c
+++ b/reset.c
@@ -25,6 +25,7 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
extern int reset_main(int argc, char **argv)
{
diff --git a/rm.c b/rm.c
index a9501ec7f..302599ec0 100644
--- a/rm.c
+++ b/rm.c
@@ -28,6 +28,8 @@
#include <utime.h>
#include <dirent.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
static int recursiveFlag = FALSE;
static int forceFlag = FALSE;
diff --git a/rmdir.c b/rmdir.c
index f9f82bba4..8c2165e6b 100644
--- a/rmdir.c
+++ b/rmdir.c
@@ -25,6 +25,8 @@
#include "busybox.h"
#include <stdio.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int rmdir_main(int argc, char **argv)
{
diff --git a/rmmod.c b/rmmod.c
index 52adc7bcd..ff08c4ca0 100644
--- a/rmmod.c
+++ b/rmmod.c
@@ -25,6 +25,9 @@
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
+#include <stdlib.h>
+#include <sys/syscall.h>
+#include <linux/unistd.h>
#define __LIBRARY__
diff --git a/rpmunpack.c b/rpmunpack.c
index 0f36077c1..85c7c9c1e 100644
--- a/rpmunpack.c
+++ b/rpmunpack.c
@@ -15,6 +15,9 @@
#include "busybox.h"
#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
/*
* Some general definitions
diff --git a/sed.c b/sed.c
index a50d8d03b..95aad79e8 100644
--- a/sed.c
+++ b/sed.c
@@ -47,9 +47,11 @@
#include <string.h> /* for strdup() */
#include <errno.h>
#include <ctype.h> /* for isspace() */
+#include <stdlib.h>
#include "busybox.h"
/* externs */
+extern void xregcomp(regex_t *preg, const char *regex, int cflags);
extern int optind; /* in unistd.h */
extern char *optarg; /* ditto */
diff --git a/sleep.c b/sleep.c
index 10eca593e..61b7ce404 100644
--- a/sleep.c
+++ b/sleep.c
@@ -23,6 +23,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int sleep_main(int argc, char **argv)
{
diff --git a/sort.c b/sort.c
index efff6b653..2aef2d955 100644
--- a/sort.c
+++ b/sort.c
@@ -22,6 +22,8 @@
*/
#include "busybox.h"
+#include <getopt.h>
+#include <stdlib.h>
int compare_ascii(const void *x, const void *y)
{
diff --git a/swaponoff.c b/swaponoff.c
index eda15100b..d792c708d 100644
--- a/swaponoff.c
+++ b/swaponoff.c
@@ -24,10 +24,13 @@
#include "busybox.h"
#include <stdio.h>
-#include <sys/mount.h>
#include <mntent.h>
#include <dirent.h>
#include <errno.h>
+#include <stdlib.h>
+#include <sys/mount.h>
+#include <sys/syscall.h>
+#include <linux/unistd.h>
_syscall2(int, swapon, const char *, path, int, flags);
_syscall1(int, swapoff, const char *, path);
diff --git a/sync.c b/sync.c
index 8f101cf17..f95c24c6c 100644
--- a/sync.c
+++ b/sync.c
@@ -23,6 +23,7 @@
#include "busybox.h"
#include <stdio.h>
+#include <unistd.h>
extern int sync_main(int argc, char **argv)
{
diff --git a/sysklogd/logger.c b/sysklogd/logger.c
index 3d02979c8..d286f34d1 100644
--- a/sysklogd/logger.c
+++ b/sysklogd/logger.c
@@ -27,6 +27,8 @@
#include <sys/types.h>
#include <fcntl.h>
#include <ctype.h>
+#include <string.h>
+#include <stdlib.h>
#if !defined BB_SYSLOGD
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
index 972fda15f..3c36f68e8 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
@@ -34,6 +34,7 @@
#include <signal.h>
#include <stdarg.h>
#include <time.h>
+#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
@@ -41,7 +42,8 @@
#include <sys/param.h>
#if ! defined __GLIBC__ && ! defined __UCLIBC__
-
+#include <sys/syscall.h>
+#include <linux/unistd.h>
typedef unsigned int socklen_t;
#ifndef __alpha__
diff --git a/syslogd.c b/syslogd.c
index 972fda15f..3c36f68e8 100644
--- a/syslogd.c
+++ b/syslogd.c
@@ -34,6 +34,7 @@
#include <signal.h>
#include <stdarg.h>
#include <time.h>
+#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
@@ -41,7 +42,8 @@
#include <sys/param.h>
#if ! defined __GLIBC__ && ! defined __UCLIBC__
-
+#include <sys/syscall.h>
+#include <linux/unistd.h>
typedef unsigned int socklen_t;
#ifndef __alpha__
diff --git a/tail.c b/tail.c
index dc5918d6b..40511aa7b 100644
--- a/tail.c
+++ b/tail.c
@@ -23,8 +23,12 @@
#include "busybox.h"
-#include <sys/types.h>
#include <fcntl.h>
+#include <getopt.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
static struct suffix_mult tail_suffixes[] = {
{ "b", 512 },
diff --git a/tar.c b/tar.c
index 51a857d71..2c7169bcc 100644
--- a/tar.c
+++ b/tar.c
@@ -52,6 +52,9 @@
#include <sys/sysmacros.h>
#include <getopt.h>
#include <fnmatch.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
#ifdef BB_FEATURE_TAR_GZIP
extern int unzip(int in, int out);
diff --git a/touch.c b/touch.c
index 1b03075e8..fa2f3b609 100644
--- a/touch.c
+++ b/touch.c
@@ -28,6 +28,8 @@
#include <fcntl.h>
#include <utime.h>
#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int touch_main(int argc, char **argv)
{
diff --git a/tr.c b/tr.c
index 15e3709bb..2717a92db 100644
--- a/tr.c
+++ b/tr.c
@@ -191,9 +191,9 @@ extern int tr_main(int argc, char **argv)
map(input, input_length, output, output_length);
}
for (i = 0; i < input_length; i++)
- invec[input[i]] = TRUE;
+ invec[(int)input[i]] = TRUE;
for (i = 0; i < output_length; i++)
- outvec[output[i]] = TRUE;
+ outvec[(int)output[i]] = TRUE;
}
convert();
return (0);
diff --git a/true_false.c b/true_false.c
index 333541c9b..155b26286 100644
--- a/true_false.c
+++ b/true_false.c
@@ -23,6 +23,7 @@
*/
#include "busybox.h"
+#include <stdlib.h>
extern int true_main(int argc, char **argv)
diff --git a/tty.c b/tty.c
index 46201d3e6..2a64b149d 100644
--- a/tty.c
+++ b/tty.c
@@ -22,6 +22,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
#include <sys/types.h>
extern int tty_main(int argc, char **argv)
diff --git a/umount.c b/umount.c
index 2e2d95de4..dfd58259d 100644
--- a/umount.c
+++ b/umount.c
@@ -26,6 +26,8 @@
#include <stdio.h>
#include <mntent.h>
#include <errno.h>
+#include <string.h>
+#include <stdlib.h>
static const int MNT_FORCE = 1;
diff --git a/uname.c b/uname.c
index 4f7c643f9..deaffd700 100644
--- a/uname.c
+++ b/uname.c
@@ -33,6 +33,7 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
#include <sys/types.h>
#include <sys/utsname.h>
diff --git a/uniq.c b/uniq.c
index c0229aecb..228855962 100644
--- a/uniq.c
+++ b/uniq.c
@@ -26,7 +26,9 @@
#include "busybox.h"
#include <stdio.h>
#include <string.h>
+#include <getopt.h>
#include <errno.h>
+#include <stdlib.h>
static int print_count;
static int print_uniq = 1;
diff --git a/update.c b/update.c
index 080cb99c3..309ce0cbd 100644
--- a/update.c
+++ b/update.c
@@ -32,11 +32,14 @@
#include <sys/param.h>
#include <sys/syslog.h>
#include <unistd.h> /* for getopt() */
+#include <stdlib.h>
#if defined(__GLIBC__)
#include <sys/kdaemon.h>
#else
+#include <sys/syscall.h>
+#include <linux/unistd.h>
static _syscall2(int, bdflush, int, func, int, data);
#endif /* __GLIBC__ */
diff --git a/uptime.c b/uptime.c
index b827f7e67..4463b94ef 100644
--- a/uptime.c
+++ b/uptime.c
@@ -32,6 +32,7 @@
#include <stdio.h>
#include <time.h>
#include <errno.h>
+#include <stdlib.h>
static const int FSHIFT = 16; /* nr of bits of precision */
#define FIXED_1 (1<<FSHIFT) /* 1.0 as fixed-point */
diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c
index c220d9018..c21f84c9a 100644
--- a/util-linux/dmesg.c
+++ b/util-linux/dmesg.c
@@ -18,9 +18,11 @@
#include "busybox.h"
#include <stdio.h>
#include <stdlib.h>
+#include <getopt.h>
#if __GNU_LIBRARY__ < 5
-
+#include <sys/syscall.h>
+#include <linux/unistd.h>
#ifndef __alpha__
# define __NR_klogctl __NR_syslog
static inline _syscall3(int, klogctl, int, type, char *, b, int, len);
diff --git a/util-linux/fbset.c b/util-linux/fbset.c
index 845be8442..637896bed 100644
--- a/util-linux/fbset.c
+++ b/util-linux/fbset.c
@@ -31,6 +31,7 @@
#include <fcntl.h>
#include <errno.h>
#include <ctype.h>
+#include <string.h>
#include <sys/ioctl.h>
#define DEFAULTFBDEV "/dev/fb0"
diff --git a/util-linux/fdflush.c b/util-linux/fdflush.c
index 5eb93ddd7..fcf8ddd28 100644
--- a/util-linux/fdflush.c
+++ b/util-linux/fdflush.c
@@ -25,6 +25,7 @@
#include <stdio.h>
#include <sys/ioctl.h>
#include <fcntl.h>
+#include <stdlib.h>
/* From <linux/fd.h> */
#define FDFLUSH _IO(2,0x4b)
diff --git a/util-linux/freeramdisk.c b/util-linux/freeramdisk.c
index a2b17c673..8f90f40b5 100644
--- a/util-linux/freeramdisk.c
+++ b/util-linux/freeramdisk.c
@@ -27,6 +27,7 @@
#include <fcntl.h>
#include <sys/ioctl.h>
#include <errno.h>
+#include <stdlib.h>
#include "busybox.h"
diff --git a/util-linux/more.c b/util-linux/more.c
index 03cb3bc2b..c4c74fe4a 100644
--- a/util-linux/more.c
+++ b/util-linux/more.c
@@ -29,6 +29,7 @@
#include <stdio.h>
#include <fcntl.h>
#include <signal.h>
+#include <stdlib.h>
#include <sys/ioctl.h>
#define BB_DECLARE_EXTERN
#define bb_need_help
diff --git a/util-linux/rdate.c b/util-linux/rdate.c
index 954982ae9..0ad339be8 100644
--- a/util-linux/rdate.c
+++ b/util-linux/rdate.c
@@ -31,6 +31,8 @@
#include <netdb.h>
#include <stdio.h>
#include <getopt.h>
+#include <stdlib.h>
+#include <unistd.h>
static const int RFC_868_BIAS = 2208988800UL;
diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c
index eda15100b..d792c708d 100644
--- a/util-linux/swaponoff.c
+++ b/util-linux/swaponoff.c
@@ -24,10 +24,13 @@
#include "busybox.h"
#include <stdio.h>
-#include <sys/mount.h>
#include <mntent.h>
#include <dirent.h>
#include <errno.h>
+#include <stdlib.h>
+#include <sys/mount.h>
+#include <sys/syscall.h>
+#include <linux/unistd.h>
_syscall2(int, swapon, const char *, path, int, flags);
_syscall1(int, swapoff, const char *, path);
diff --git a/util-linux/umount.c b/util-linux/umount.c
index 2e2d95de4..dfd58259d 100644
--- a/util-linux/umount.c
+++ b/util-linux/umount.c
@@ -26,6 +26,8 @@
#include <stdio.h>
#include <mntent.h>
#include <errno.h>
+#include <string.h>
+#include <stdlib.h>
static const int MNT_FORCE = 1;
diff --git a/utility.c b/utility.c
index 13b8065d3..bf4284c94 100644
--- a/utility.c
+++ b/utility.c
@@ -50,11 +50,17 @@
#include <utime.h>
#include <unistd.h>
#include <ctype.h>
+#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/utsname.h> /* for uname(2) */
+
#include "pwd_grp/pwd.h"
#include "pwd_grp/grp.h"
+/* for the _syscall() macros */
+#include <sys/syscall.h>
+#include <linux/unistd.h>
+
/* Busybox mount uses either /proc/filesystems or /dev/mtab to get the
* list of available filesystems used for the -t auto option */
#if defined BB_FEATURE_USE_PROCFS && defined BB_FEATURE_USE_DEVPS_PATCH
@@ -1123,6 +1129,7 @@ extern int check_wildcard_match(const char *text, const char *pattern)
#if defined BB_DF || defined BB_MTAB
+#include <mntent.h>
/*
* Given a block device, find the mount table entry if that block device
* is mounted.
@@ -1645,6 +1652,7 @@ char *get_last_path_component(char *path)
#endif
#if defined BB_GREP || defined BB_SED
+#include <regex.h>
void xregcomp(regex_t *preg, const char *regex, int cflags)
{
int ret;
diff --git a/uudecode.c b/uudecode.c
index 7b26d2dad..fcfcfd903 100644
--- a/uudecode.c
+++ b/uudecode.c
@@ -27,6 +27,10 @@
#include <stdio.h>
#include <errno.h>
#include <getopt.h>
+#include <string.h>
+#include <stdlib.h>
+#include "pwd_grp/pwd.h"
+#include "pwd_grp/grp.h"
/*struct passwd *getpwnam();*/
diff --git a/uuencode.c b/uuencode.c
index 24aabd373..5df49026b 100644
--- a/uuencode.c
+++ b/uuencode.c
@@ -27,6 +27,7 @@
#include <stdio.h>
#include <errno.h>
#include <getopt.h>
+#include <stdlib.h>
#define RW (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
diff --git a/watchdog.c b/watchdog.c
index d297afa02..7026cc005 100644
--- a/watchdog.c
+++ b/watchdog.c
@@ -23,6 +23,8 @@
#include "busybox.h"
#include <stdio.h>
#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
extern int watchdog_main(int argc, char **argv)
{
diff --git a/wc.c b/wc.c
index e6f753435..619c161a7 100644
--- a/wc.c
+++ b/wc.c
@@ -23,6 +23,7 @@
#include "busybox.h"
#include <stdio.h>
#include <getopt.h>
+#include <stdlib.h>
static int total_lines, total_words, total_chars, max_length;
static int print_lines, print_words, print_chars, print_length;
diff --git a/wget.c b/wget.c
index 2c38cb08e..438ecba2e 100644
--- a/wget.c
+++ b/wget.c
@@ -33,6 +33,18 @@
#include <arpa/inet.h>
#include <netdb.h>
+/* Stupid libc5 doesn't define this... */
+#ifndef timersub
+#define timersub(a, b, result) \
+ do { \
+ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
+ (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
+ if ((result)->tv_usec < 0) { \
+ --(result)->tv_sec; \
+ (result)->tv_usec += 1000000; \
+ } \
+ } while (0)
+#endif
void parse_url(char *url, char **uri_host, int *uri_port, char **uri_path);
FILE *open_socket(char *host, int port);
@@ -283,7 +295,7 @@ FILE *open_socket(char *host, int port)
int fd;
FILE *fp;
- memzero(&sin, sizeof(sin));
+ memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
if ((hp = (struct hostent *) gethostbyname(host)) == NULL)
error_msg_and_die("cannot resolve %s\n", host);
@@ -521,7 +533,7 @@ progressmeter(int flag)
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: wget.c,v 1.22 2001/01/26 02:04:49 andersen Exp $
+ * $Id: wget.c,v 1.23 2001/01/27 08:24:38 andersen Exp $
*/
diff --git a/which.c b/which.c
index a92777eb7..b900a0b14 100644
--- a/which.c
+++ b/which.c
@@ -22,7 +22,9 @@
*/
#include "busybox.h"
+#include <string.h>
#include <stdio.h>
+#include <stdlib.h>
extern int which_main(int argc, char **argv)
{
diff --git a/whoami.c b/whoami.c
index d7f0a177c..870ede43e 100644
--- a/whoami.c
+++ b/whoami.c
@@ -22,6 +22,8 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
extern int whoami_main(int argc, char **argv)
{
diff --git a/yes.c b/yes.c
index 46873f3f9..0ce49499f 100644
--- a/yes.c
+++ b/yes.c
@@ -22,6 +22,7 @@
#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
extern int yes_main(int argc, char **argv)
{