summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2006-03-06 20:47:33 +0000
committerRob Landley <rob@landley.net>2006-03-06 20:47:33 +0000
commitdfba741457cc81eb2ed3a9d4c074fbad74aa3249 (patch)
tree588d140a71e857cb32c80d1faad6f3073b119aa7
parent1f5e25bf3eca768b8cee1c689ac154d8f51662f9 (diff)
downloadbusybox-w32-dfba741457cc81eb2ed3a9d4c074fbad74aa3249.tar.gz
busybox-w32-dfba741457cc81eb2ed3a9d4c074fbad74aa3249.tar.bz2
busybox-w32-dfba741457cc81eb2ed3a9d4c074fbad74aa3249.zip
Robert P. Day removed 8 gazillion occurrences of "extern" on function
definitions. (That should only be on prototypes.)
-rw-r--r--applets/applets.c2
-rw-r--r--archival/ar.c2
-rw-r--r--archival/cpio.c2
-rw-r--r--archival/dpkg_deb.c2
-rw-r--r--archival/gunzip.c2
-rw-r--r--archival/libunarchive/archive_xread_all.c2
-rw-r--r--archival/libunarchive/archive_xread_all_eof.c2
-rw-r--r--archival/libunarchive/check_header_gzip.c2
-rw-r--r--archival/libunarchive/data_align.c2
-rw-r--r--archival/libunarchive/data_extract_all.c2
-rw-r--r--archival/libunarchive/data_extract_to_buffer.c2
-rw-r--r--archival/libunarchive/data_extract_to_stdout.c2
-rw-r--r--archival/libunarchive/data_skip.c2
-rw-r--r--archival/libunarchive/decompress_bunzip2.c2
-rw-r--r--archival/libunarchive/decompress_uncompress.c2
-rw-r--r--archival/libunarchive/decompress_unzip.c8
-rw-r--r--archival/libunarchive/filter_accept_all.c2
-rw-r--r--archival/libunarchive/filter_accept_list.c2
-rw-r--r--archival/libunarchive/filter_accept_list_reassign.c2
-rw-r--r--archival/libunarchive/filter_accept_reject_list.c2
-rw-r--r--archival/libunarchive/find_list_entry.c2
-rw-r--r--archival/libunarchive/get_header_ar.c2
-rw-r--r--archival/libunarchive/get_header_cpio.c2
-rw-r--r--archival/libunarchive/get_header_tar.c2
-rw-r--r--archival/libunarchive/get_header_tar_bz2.c2
-rw-r--r--archival/libunarchive/get_header_tar_gz.c2
-rw-r--r--archival/libunarchive/header_list.c2
-rw-r--r--archival/libunarchive/header_skip.c2
-rw-r--r--archival/libunarchive/header_verbose_list.c2
-rw-r--r--archival/libunarchive/open_transformer.c2
-rw-r--r--archival/libunarchive/seek_by_char.c2
-rw-r--r--archival/libunarchive/seek_by_jump.c2
-rw-r--r--archival/libunarchive/unpack_ar_archive.c2
-rw-r--r--archival/rpm2cpio.c2
-rw-r--r--archival/uncompress.c2
-rw-r--r--archival/unzip.c2
-rw-r--r--console-tools/clear.c2
-rw-r--r--console-tools/loadfont.c2
-rw-r--r--console-tools/reset.c2
-rw-r--r--coreutils/basename.c2
-rw-r--r--coreutils/cat.c2
-rw-r--r--coreutils/cp.c2
-rw-r--r--coreutils/cut.c2
-rw-r--r--coreutils/df.c2
-rw-r--r--coreutils/dirname.c2
-rw-r--r--coreutils/echo.c2
-rw-r--r--coreutils/env.c2
-rw-r--r--coreutils/false.c2
-rw-r--r--coreutils/fold.c2
-rw-r--r--coreutils/hostid.c2
-rw-r--r--coreutils/id.c2
-rw-r--r--coreutils/install.c2
-rw-r--r--coreutils/length.c2
-rw-r--r--coreutils/libcoreutils/cp_mv_stat.c4
-rw-r--r--coreutils/libcoreutils/getopt_mk_fifo_nod.c2
-rw-r--r--coreutils/ln.c2
-rw-r--r--coreutils/logname.c2
-rw-r--r--coreutils/ls.c2
-rw-r--r--coreutils/mkdir.c2
-rw-r--r--coreutils/mkfifo.c2
-rw-r--r--coreutils/mknod.c2
-rw-r--r--coreutils/mv.c2
-rw-r--r--coreutils/pwd.c2
-rw-r--r--coreutils/rm.c2
-rw-r--r--coreutils/rmdir.c2
-rw-r--r--coreutils/seq.c2
-rw-r--r--coreutils/sleep.c2
-rw-r--r--coreutils/stty.c4
-rw-r--r--coreutils/sync.c2
-rw-r--r--coreutils/test.c2
-rw-r--r--coreutils/touch.c2
-rw-r--r--coreutils/tr.c2
-rw-r--r--coreutils/true.c2
-rw-r--r--coreutils/tty.c2
-rw-r--r--coreutils/usleep.c2
-rw-r--r--coreutils/uudecode.c2
-rw-r--r--coreutils/watch.c2
-rw-r--r--coreutils/who.c2
-rw-r--r--coreutils/whoami.c2
-rw-r--r--coreutils/yes.c2
-rw-r--r--debianutils/mktemp.c2
-rw-r--r--debianutils/pipe_progress.c2
-rw-r--r--debianutils/which.c2
-rw-r--r--e2fsprogs/blkid/dev.c6
-rw-r--r--e2fsprogs/blkid/tag.c4
-rw-r--r--e2fsprogs/e2fsck.c2
-rw-r--r--editors/awk.c2
-rw-r--r--editors/patch.c2
-rw-r--r--editors/sed.c2
-rw-r--r--editors/vi.c2
-rw-r--r--findutils/grep.c2
-rw-r--r--init/init.c2
-rw-r--r--init/init_shared.c2
-rw-r--r--init/mesg.c2
-rw-r--r--libbb/bb_echo.c2
-rw-r--r--libbb/concat_path_file.c2
-rw-r--r--libbb/concat_subpath_file.c2
-rw-r--r--libbb/copyfd.c4
-rw-r--r--libbb/device_open.c2
-rw-r--r--libbb/error_msg.c2
-rw-r--r--libbb/error_msg_and_die.c2
-rw-r--r--libbb/find_mount_point.c2
-rw-r--r--libbb/find_pid_by_name.c4
-rw-r--r--libbb/find_root_device.c2
-rw-r--r--libbb/get_line_from_file.c4
-rw-r--r--libbb/herror_msg.c2
-rw-r--r--libbb/herror_msg_and_die.c2
-rw-r--r--libbb/kernel_version.c2
-rw-r--r--libbb/llist.c8
-rw-r--r--libbb/obscure.c2
-rw-r--r--libbb/parse_mode.c2
-rw-r--r--libbb/perror_msg.c2
-rw-r--r--libbb/perror_msg_and_die.c2
-rw-r--r--libbb/perror_nomsg.c2
-rw-r--r--libbb/perror_nomsg_and_die.c2
-rw-r--r--libbb/print_file.c4
-rw-r--r--libbb/printf.c4
-rw-r--r--libbb/procps.c2
-rw-r--r--libbb/pw_encrypt.c2
-rw-r--r--libbb/remove_file.c2
-rw-r--r--libbb/run_parts.c2
-rw-r--r--libbb/safe_strncpy.c2
-rw-r--r--libbb/skip_whitespace.c2
-rw-r--r--libbb/vdprintf.c2
-rw-r--r--libbb/verror_msg.c2
-rw-r--r--libbb/vherror_msg.c2
-rw-r--r--libbb/vperror_msg.c2
-rw-r--r--libbb/warn_ignoring_args.c2
-rw-r--r--libbb/xfuncs.c20
-rw-r--r--libbb/xgetlarg.c2
-rw-r--r--libbb/xreadlink.c2
-rw-r--r--loginutils/login.c2
-rw-r--r--loginutils/passwd.c2
-rw-r--r--loginutils/sulogin.c2
-rw-r--r--loginutils/vlock.c2
-rw-r--r--miscutils/eject.c2
-rw-r--r--miscutils/last.c2
-rw-r--r--miscutils/makedevs.c2
-rw-r--r--miscutils/mt.c2
-rw-r--r--miscutils/time.c2
-rw-r--r--modutils/insmod.c4
-rw-r--r--modutils/lsmod.c4
-rw-r--r--modutils/modprobe.c2
-rw-r--r--modutils/rmmod.c2
-rw-r--r--networking/ifupdown.c2
-rw-r--r--networking/libiproute/ipaddress.c4
-rw-r--r--networking/ping.c4
-rw-r--r--networking/ping6.c4
-rw-r--r--networking/telnet.c2
-rw-r--r--procps/free.c2
-rw-r--r--procps/kill.c2
-rw-r--r--procps/pidof.c2
-rw-r--r--procps/ps.c2
-rw-r--r--procps/uptime.c2
-rw-r--r--shell/cmdedit.c4
-rw-r--r--shell/msh.c2
-rw-r--r--sysklogd/klogd.c2
-rw-r--r--sysklogd/logger.c2
-rw-r--r--sysklogd/logread.c2
-rw-r--r--sysklogd/syslogd.c2
-rw-r--r--util-linux/fbset.c2
-rw-r--r--util-linux/fdflush.c2
-rw-r--r--util-linux/fsck_minix.c2
-rw-r--r--util-linux/hwclock.c2
-rw-r--r--util-linux/mkfs_minix.c2
-rw-r--r--util-linux/more.c2
-rw-r--r--util-linux/swaponoff.c2
-rw-r--r--util-linux/umount.c2
168 files changed, 199 insertions, 199 deletions
diff --git a/applets/applets.c b/applets/applets.c
index de1a871e0..bbe12034a 100644
--- a/applets/applets.c
+++ b/applets/applets.c
@@ -405,7 +405,7 @@ static void check_suid (struct BB_applet *applet)
405 405
406 406
407 407
408extern void bb_show_usage (void) 408void bb_show_usage (void)
409{ 409{
410 const char *format_string; 410 const char *format_string;
411 const char *usage_string = usage_messages; 411 const char *usage_string = usage_messages;
diff --git a/archival/ar.c b/archival/ar.c
index 05cb231aa..7782af89f 100644
--- a/archival/ar.c
+++ b/archival/ar.c
@@ -57,7 +57,7 @@ static void header_verbose_list_ar(const file_header_t *file_header)
57#define AR_OPT_CREATE 0x20 57#define AR_OPT_CREATE 0x20
58#define AR_OPT_INSERT 0x40 58#define AR_OPT_INSERT 0x40
59 59
60extern int ar_main(int argc, char **argv) 60int ar_main(int argc, char **argv)
61{ 61{
62 archive_handle_t *archive_handle; 62 archive_handle_t *archive_handle;
63 unsigned long opt; 63 unsigned long opt;
diff --git a/archival/cpio.c b/archival/cpio.c
index 820f03e9b..26f845bc9 100644
--- a/archival/cpio.c
+++ b/archival/cpio.c
@@ -38,7 +38,7 @@
38#define CPIO_OPT_CREATE_LEADING_DIR 0x20 38#define CPIO_OPT_CREATE_LEADING_DIR 0x20
39#define CPIO_OPT_PRESERVE_MTIME 0x40 39#define CPIO_OPT_PRESERVE_MTIME 0x40
40 40
41extern int cpio_main(int argc, char **argv) 41int cpio_main(int argc, char **argv)
42{ 42{
43 archive_handle_t *archive_handle; 43 archive_handle_t *archive_handle;
44 char *cpio_filename = NULL; 44 char *cpio_filename = NULL;
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c
index 29e9719cb..fa89e44a0 100644
--- a/archival/dpkg_deb.c
+++ b/archival/dpkg_deb.c
@@ -28,7 +28,7 @@
28#define DPKG_DEB_OPT_EXTRACT 8 28#define DPKG_DEB_OPT_EXTRACT 8
29#define DPKG_DEB_OPT_EXTRACT_VERBOSE 16 29#define DPKG_DEB_OPT_EXTRACT_VERBOSE 16
30 30
31extern int dpkg_deb_main(int argc, char **argv) 31int dpkg_deb_main(int argc, char **argv)
32{ 32{
33 archive_handle_t *ar_archive; 33 archive_handle_t *ar_archive;
34 archive_handle_t *tar_archive; 34 archive_handle_t *tar_archive;
diff --git a/archival/gunzip.c b/archival/gunzip.c
index 76738b017..4fb77044a 100644
--- a/archival/gunzip.c
+++ b/archival/gunzip.c
@@ -75,7 +75,7 @@ static char *license_msg[] = {
75#define GUNZIP_OPT_TEST 4 75#define GUNZIP_OPT_TEST 4
76#define GUNZIP_OPT_DECOMPRESS 8 76#define GUNZIP_OPT_DECOMPRESS 8
77 77
78extern int gunzip_main(int argc, char **argv) 78int gunzip_main(int argc, char **argv)
79{ 79{
80 char status = EXIT_SUCCESS; 80 char status = EXIT_SUCCESS;
81 unsigned long opt; 81 unsigned long opt;
diff --git a/archival/libunarchive/archive_xread_all.c b/archival/libunarchive/archive_xread_all.c
index ba9ade2d5..ebd64dc14 100644
--- a/archival/libunarchive/archive_xread_all.c
+++ b/archival/libunarchive/archive_xread_all.c
@@ -20,7 +20,7 @@
20#include "unarchive.h" 20#include "unarchive.h"
21#include "libbb.h" 21#include "libbb.h"
22 22
23extern void archive_xread_all(const archive_handle_t *archive_handle, void *buf, const size_t count) 23void archive_xread_all(const archive_handle_t *archive_handle, void *buf, const size_t count)
24{ 24{
25 ssize_t size; 25 ssize_t size;
26 26
diff --git a/archival/libunarchive/archive_xread_all_eof.c b/archival/libunarchive/archive_xread_all_eof.c
index f1eea2928..d85879797 100644
--- a/archival/libunarchive/archive_xread_all_eof.c
+++ b/archival/libunarchive/archive_xread_all_eof.c
@@ -20,7 +20,7 @@
20#include "unarchive.h" 20#include "unarchive.h"
21#include "libbb.h" 21#include "libbb.h"
22 22
23extern ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, unsigned char *buf, size_t count) 23ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, unsigned char *buf, size_t count)
24{ 24{
25 ssize_t size; 25 ssize_t size;
26 26
diff --git a/archival/libunarchive/check_header_gzip.c b/archival/libunarchive/check_header_gzip.c
index 9e065c4fd..a8ecf3799 100644
--- a/archival/libunarchive/check_header_gzip.c
+++ b/archival/libunarchive/check_header_gzip.c
@@ -3,7 +3,7 @@
3#include "libbb.h" 3#include "libbb.h"
4#include "unarchive.h" /* for external decl of check_header_gzip */ 4#include "unarchive.h" /* for external decl of check_header_gzip */
5 5
6extern void check_header_gzip(int src_fd) 6void check_header_gzip(int src_fd)
7{ 7{
8 union { 8 union {
9 unsigned char raw[8]; 9 unsigned char raw[8];
diff --git a/archival/libunarchive/data_align.c b/archival/libunarchive/data_align.c
index 1d433957d..e4a364006 100644
--- a/archival/libunarchive/data_align.c
+++ b/archival/libunarchive/data_align.c
@@ -22,7 +22,7 @@
22#include "libbb.h" 22#include "libbb.h"
23#include "unarchive.h" 23#include "unarchive.h"
24 24
25extern void data_align(archive_handle_t *archive_handle, const unsigned short boundary) 25void data_align(archive_handle_t *archive_handle, const unsigned short boundary)
26{ 26{
27 const unsigned short skip_amount = (boundary - (archive_handle->offset % boundary)) % boundary; 27 const unsigned short skip_amount = (boundary - (archive_handle->offset % boundary)) % boundary;
28 28
diff --git a/archival/libunarchive/data_extract_all.c b/archival/libunarchive/data_extract_all.c
index 42e442336..588b081a5 100644
--- a/archival/libunarchive/data_extract_all.c
+++ b/archival/libunarchive/data_extract_all.c
@@ -27,7 +27,7 @@
27#include "libbb.h" 27#include "libbb.h"
28#include "unarchive.h" 28#include "unarchive.h"
29 29
30extern void data_extract_all(archive_handle_t *archive_handle) 30void data_extract_all(archive_handle_t *archive_handle)
31{ 31{
32 file_header_t *file_header = archive_handle->file_header; 32 file_header_t *file_header = archive_handle->file_header;
33 int dst_fd; 33 int dst_fd;
diff --git a/archival/libunarchive/data_extract_to_buffer.c b/archival/libunarchive/data_extract_to_buffer.c
index db5521bcb..1255fe1da 100644
--- a/archival/libunarchive/data_extract_to_buffer.c
+++ b/archival/libunarchive/data_extract_to_buffer.c
@@ -17,7 +17,7 @@
17#include "libbb.h" 17#include "libbb.h"
18#include "unarchive.h" 18#include "unarchive.h"
19 19
20extern void data_extract_to_buffer(archive_handle_t *archive_handle) 20void data_extract_to_buffer(archive_handle_t *archive_handle)
21{ 21{
22 const unsigned int size = archive_handle->file_header->size; 22 const unsigned int size = archive_handle->file_header->size;
23 23
diff --git a/archival/libunarchive/data_extract_to_stdout.c b/archival/libunarchive/data_extract_to_stdout.c
index df2bca6ef..f1be5dc67 100644
--- a/archival/libunarchive/data_extract_to_stdout.c
+++ b/archival/libunarchive/data_extract_to_stdout.c
@@ -17,7 +17,7 @@
17#include "unarchive.h" 17#include "unarchive.h"
18#include <unistd.h> 18#include <unistd.h>
19 19
20extern void data_extract_to_stdout(archive_handle_t *archive_handle) 20void data_extract_to_stdout(archive_handle_t *archive_handle)
21{ 21{
22 bb_copyfd_size(archive_handle->src_fd, STDOUT_FILENO, archive_handle->file_header->size); 22 bb_copyfd_size(archive_handle->src_fd, STDOUT_FILENO, archive_handle->file_header->size);
23} 23}
diff --git a/archival/libunarchive/data_skip.c b/archival/libunarchive/data_skip.c
index b82c9065b..0c6e26e54 100644
--- a/archival/libunarchive/data_skip.c
+++ b/archival/libunarchive/data_skip.c
@@ -21,7 +21,7 @@
21#include "unarchive.h" 21#include "unarchive.h"
22#include "libbb.h" 22#include "libbb.h"
23 23
24extern void data_skip(archive_handle_t *archive_handle) 24void data_skip(archive_handle_t *archive_handle)
25{ 25{
26 archive_handle->seek(archive_handle, archive_handle->file_header->size); 26 archive_handle->seek(archive_handle, archive_handle->file_header->size);
27} 27}
diff --git a/archival/libunarchive/decompress_bunzip2.c b/archival/libunarchive/decompress_bunzip2.c
index 7f700ca7f..88d88b85f 100644
--- a/archival/libunarchive/decompress_bunzip2.c
+++ b/archival/libunarchive/decompress_bunzip2.c
@@ -684,7 +684,7 @@ static int start_bunzip(bunzip_data **bdp, int in_fd, unsigned char *inbuf,
684/* Example usage: decompress src_fd to dst_fd. (Stops at end of bzip data, 684/* Example usage: decompress src_fd to dst_fd. (Stops at end of bzip data,
685 not end of file.) */ 685 not end of file.) */
686 686
687extern int uncompressStream(int src_fd, int dst_fd) 687int uncompressStream(int src_fd, int dst_fd)
688{ 688{
689 char *outbuf; 689 char *outbuf;
690 bunzip_data *bd; 690 bunzip_data *bd;
diff --git a/archival/libunarchive/decompress_uncompress.c b/archival/libunarchive/decompress_uncompress.c
index c8d8b4af9..539d4ef90 100644
--- a/archival/libunarchive/decompress_uncompress.c
+++ b/archival/libunarchive/decompress_uncompress.c
@@ -95,7 +95,7 @@ static unsigned short codetab[HSIZE];
95 * with those of the compress() routine. See the definitions above. 95 * with those of the compress() routine. See the definitions above.
96 */ 96 */
97 97
98extern int uncompress(int fd_in, int fd_out) 98int uncompress(int fd_in, int fd_out)
99{ 99{
100 unsigned char *stackp; 100 unsigned char *stackp;
101 long int code; 101 long int code;
diff --git a/archival/libunarchive/decompress_unzip.c b/archival/libunarchive/decompress_unzip.c
index ea8169592..7776dee69 100644
--- a/archival/libunarchive/decompress_unzip.c
+++ b/archival/libunarchive/decompress_unzip.c
@@ -892,7 +892,7 @@ static int inflate_get_next_window(void)
892} 892}
893 893
894/* Initialise bytebuffer, be careful not to overfill the buffer */ 894/* Initialise bytebuffer, be careful not to overfill the buffer */
895extern void inflate_init(unsigned int bufsize) 895void inflate_init(unsigned int bufsize)
896{ 896{
897 /* Set the bytebuffer size, default is same as gunzip_wsize */ 897 /* Set the bytebuffer size, default is same as gunzip_wsize */
898 bytebuffer_max = bufsize + 8; 898 bytebuffer_max = bufsize + 8;
@@ -900,12 +900,12 @@ extern void inflate_init(unsigned int bufsize)
900 bytebuffer_size = 0; 900 bytebuffer_size = 0;
901} 901}
902 902
903extern void inflate_cleanup(void) 903void inflate_cleanup(void)
904{ 904{
905 free(bytebuffer); 905 free(bytebuffer);
906} 906}
907 907
908extern int inflate_unzip(int in, int out) 908int inflate_unzip(int in, int out)
909{ 909{
910 ssize_t nwrote; 910 ssize_t nwrote;
911 typedef void (*sig_type) (int); 911 typedef void (*sig_type) (int);
@@ -952,7 +952,7 @@ extern int inflate_unzip(int in, int out)
952 return 0; 952 return 0;
953} 953}
954 954
955extern int inflate_gunzip(int in, int out) 955int inflate_gunzip(int in, int out)
956{ 956{
957 unsigned int stored_crc = 0; 957 unsigned int stored_crc = 0;
958 unsigned int count; 958 unsigned int count;
diff --git a/archival/libunarchive/filter_accept_all.c b/archival/libunarchive/filter_accept_all.c
index baf9e4b71..bf5d8aaa9 100644
--- a/archival/libunarchive/filter_accept_all.c
+++ b/archival/libunarchive/filter_accept_all.c
@@ -22,7 +22,7 @@
22#include "unarchive.h" 22#include "unarchive.h"
23 23
24/* Accept any non-null name, its not really a filter at all */ 24/* Accept any non-null name, its not really a filter at all */
25extern char filter_accept_all(archive_handle_t *archive_handle) 25char filter_accept_all(archive_handle_t *archive_handle)
26{ 26{
27 if (archive_handle->file_header->name) { 27 if (archive_handle->file_header->name) {
28 return(EXIT_SUCCESS); 28 return(EXIT_SUCCESS);
diff --git a/archival/libunarchive/filter_accept_list.c b/archival/libunarchive/filter_accept_list.c
index e1c4827bf..bedd0e178 100644
--- a/archival/libunarchive/filter_accept_list.c
+++ b/archival/libunarchive/filter_accept_list.c
@@ -24,7 +24,7 @@
24/* 24/*
25 * Accept names that are in the accept list, ignoring reject list. 25 * Accept names that are in the accept list, ignoring reject list.
26 */ 26 */
27extern char filter_accept_list(archive_handle_t *archive_handle) 27char filter_accept_list(archive_handle_t *archive_handle)
28{ 28{
29 if (find_list_entry(archive_handle->accept, archive_handle->file_header->name)) { 29 if (find_list_entry(archive_handle->accept, archive_handle->file_header->name)) {
30 return(EXIT_SUCCESS); 30 return(EXIT_SUCCESS);
diff --git a/archival/libunarchive/filter_accept_list_reassign.c b/archival/libunarchive/filter_accept_list_reassign.c
index a09f564a3..5b8385c0d 100644
--- a/archival/libunarchive/filter_accept_list_reassign.c
+++ b/archival/libunarchive/filter_accept_list_reassign.c
@@ -28,7 +28,7 @@
28 * e.g. if its a .tar.gz modify archive_handle->sub_archive to process a .tar.gz 28 * e.g. if its a .tar.gz modify archive_handle->sub_archive to process a .tar.gz
29 * or if its a .tar.bz2 make archive_handle->sub_archive handle that 29 * or if its a .tar.bz2 make archive_handle->sub_archive handle that
30 */ 30 */
31extern char filter_accept_list_reassign(archive_handle_t *archive_handle) 31char filter_accept_list_reassign(archive_handle_t *archive_handle)
32{ 32{
33 /* Check the file entry is in the accept list */ 33 /* Check the file entry is in the accept list */
34 if (find_list_entry(archive_handle->accept, archive_handle->file_header->name)) { 34 if (find_list_entry(archive_handle->accept, archive_handle->file_header->name)) {
diff --git a/archival/libunarchive/filter_accept_reject_list.c b/archival/libunarchive/filter_accept_reject_list.c
index 657f7a0bd..1ac414675 100644
--- a/archival/libunarchive/filter_accept_reject_list.c
+++ b/archival/libunarchive/filter_accept_reject_list.c
@@ -24,7 +24,7 @@
24/* 24/*
25 * Accept names that are in the accept list and not in the reject list 25 * Accept names that are in the accept list and not in the reject list
26 */ 26 */
27extern char filter_accept_reject_list(archive_handle_t *archive_handle) 27char filter_accept_reject_list(archive_handle_t *archive_handle)
28{ 28{
29 const char *key = archive_handle->file_header->name; 29 const char *key = archive_handle->file_header->name;
30 const llist_t *accept_entry = find_list_entry(archive_handle->accept, key); 30 const llist_t *accept_entry = find_list_entry(archive_handle->accept, key);
diff --git a/archival/libunarchive/find_list_entry.c b/archival/libunarchive/find_list_entry.c
index 7ed9e332f..d14e51aa7 100644
--- a/archival/libunarchive/find_list_entry.c
+++ b/archival/libunarchive/find_list_entry.c
@@ -18,7 +18,7 @@
18#include <stdlib.h> 18#include <stdlib.h>
19#include "unarchive.h" 19#include "unarchive.h"
20 20
21extern const llist_t *find_list_entry(const llist_t *list, const char *filename) 21const llist_t *find_list_entry(const llist_t *list, const char *filename)
22{ 22{
23 while (list) { 23 while (list) {
24 if (fnmatch(list->data, filename, 0) == 0) { 24 if (fnmatch(list->data, filename, 0) == 0) {
diff --git a/archival/libunarchive/get_header_ar.c b/archival/libunarchive/get_header_ar.c
index e3a71951f..385f33dbf 100644
--- a/archival/libunarchive/get_header_ar.c
+++ b/archival/libunarchive/get_header_ar.c
@@ -21,7 +21,7 @@
21#include "unarchive.h" 21#include "unarchive.h"
22#include "libbb.h" 22#include "libbb.h"
23 23
24extern char get_header_ar(archive_handle_t *archive_handle) 24char get_header_ar(archive_handle_t *archive_handle)
25{ 25{
26 file_header_t *typed = archive_handle->file_header; 26 file_header_t *typed = archive_handle->file_header;
27 union { 27 union {
diff --git a/archival/libunarchive/get_header_cpio.c b/archival/libunarchive/get_header_cpio.c
index bdd80dfea..2bbcd8e5d 100644
--- a/archival/libunarchive/get_header_cpio.c
+++ b/archival/libunarchive/get_header_cpio.c
@@ -28,7 +28,7 @@ typedef struct hardlinks_s {
28 struct hardlinks_s *next; 28 struct hardlinks_s *next;
29} hardlinks_t; 29} hardlinks_t;
30 30
31extern char get_header_cpio(archive_handle_t *archive_handle) 31char get_header_cpio(archive_handle_t *archive_handle)
32{ 32{
33 static hardlinks_t *saved_hardlinks = NULL; 33 static hardlinks_t *saved_hardlinks = NULL;
34 static unsigned short pending_hardlinks = 0; 34 static unsigned short pending_hardlinks = 0;
diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c
index eeabf3f5b..682179a02 100644
--- a/archival/libunarchive/get_header_tar.c
+++ b/archival/libunarchive/get_header_tar.c
@@ -22,7 +22,7 @@ static char *longname = NULL;
22static char *linkname = NULL; 22static char *linkname = NULL;
23#endif 23#endif
24 24
25extern char get_header_tar(archive_handle_t *archive_handle) 25char get_header_tar(archive_handle_t *archive_handle)
26{ 26{
27 file_header_t *file_header = archive_handle->file_header; 27 file_header_t *file_header = archive_handle->file_header;
28 union { 28 union {
diff --git a/archival/libunarchive/get_header_tar_bz2.c b/archival/libunarchive/get_header_tar_bz2.c
index d49d6b96a..e874beee1 100644
--- a/archival/libunarchive/get_header_tar_bz2.c
+++ b/archival/libunarchive/get_header_tar_bz2.c
@@ -24,7 +24,7 @@
24#include "libbb.h" 24#include "libbb.h"
25#include "unarchive.h" 25#include "unarchive.h"
26 26
27extern char get_header_tar_bz2(archive_handle_t *archive_handle) 27char get_header_tar_bz2(archive_handle_t *archive_handle)
28{ 28{
29 /* Cant lseek over pipe's */ 29 /* Cant lseek over pipe's */
30 archive_handle->seek = seek_by_char; 30 archive_handle->seek = seek_by_char;
diff --git a/archival/libunarchive/get_header_tar_gz.c b/archival/libunarchive/get_header_tar_gz.c
index 9c708a951..62df7b268 100644
--- a/archival/libunarchive/get_header_tar_gz.c
+++ b/archival/libunarchive/get_header_tar_gz.c
@@ -19,7 +19,7 @@
19#include "libbb.h" 19#include "libbb.h"
20#include "unarchive.h" 20#include "unarchive.h"
21 21
22extern char get_header_tar_gz(archive_handle_t *archive_handle) 22char get_header_tar_gz(archive_handle_t *archive_handle)
23{ 23{
24 unsigned char magic[2]; 24 unsigned char magic[2];
25 25
diff --git a/archival/libunarchive/header_list.c b/archival/libunarchive/header_list.c
index 5849a762e..36a2d330a 100644
--- a/archival/libunarchive/header_list.c
+++ b/archival/libunarchive/header_list.c
@@ -1,7 +1,7 @@
1#include <stdio.h> 1#include <stdio.h>
2#include "unarchive.h" 2#include "unarchive.h"
3 3
4extern void header_list(const file_header_t *file_header) 4void header_list(const file_header_t *file_header)
5{ 5{
6 puts(file_header->name); 6 puts(file_header->name);
7} 7}
diff --git a/archival/libunarchive/header_skip.c b/archival/libunarchive/header_skip.c
index 963d113a4..5b3d46cb8 100644
--- a/archival/libunarchive/header_skip.c
+++ b/archival/libunarchive/header_skip.c
@@ -1,6 +1,6 @@
1#include <stdio.h> 1#include <stdio.h>
2#include "unarchive.h" 2#include "unarchive.h"
3 3
4extern void header_skip(const file_header_t *file_header ATTRIBUTE_UNUSED) 4void header_skip(const file_header_t *file_header ATTRIBUTE_UNUSED)
5{ 5{
6} 6}
diff --git a/archival/libunarchive/header_verbose_list.c b/archival/libunarchive/header_verbose_list.c
index f7601b732..7dc902e71 100644
--- a/archival/libunarchive/header_verbose_list.c
+++ b/archival/libunarchive/header_verbose_list.c
@@ -4,7 +4,7 @@
4#include "libbb.h" 4#include "libbb.h"
5#include "unarchive.h" 5#include "unarchive.h"
6 6
7extern void header_verbose_list(const file_header_t *file_header) 7void header_verbose_list(const file_header_t *file_header)
8{ 8{
9 struct tm *mtime = localtime(&(file_header->mtime)); 9 struct tm *mtime = localtime(&(file_header->mtime));
10 10
diff --git a/archival/libunarchive/open_transformer.c b/archival/libunarchive/open_transformer.c
index fb149fc0b..0d362a5ab 100644
--- a/archival/libunarchive/open_transformer.c
+++ b/archival/libunarchive/open_transformer.c
@@ -20,7 +20,7 @@
20#include "libbb.h" 20#include "libbb.h"
21 21
22/* transformer(), more than meets the eye */ 22/* transformer(), more than meets the eye */
23extern int open_transformer(int src_fd, int (*transformer)(int src_fd, int dst_fd)) 23int open_transformer(int src_fd, int (*transformer)(int src_fd, int dst_fd))
24{ 24{
25 int fd_pipe[2]; 25 int fd_pipe[2];
26 int pid; 26 int pid;
diff --git a/archival/libunarchive/seek_by_char.c b/archival/libunarchive/seek_by_char.c
index a50d566f5..02874db51 100644
--- a/archival/libunarchive/seek_by_char.c
+++ b/archival/libunarchive/seek_by_char.c
@@ -24,7 +24,7 @@
24 * 24 *
25 * TODO: rename to seek_by_read 25 * TODO: rename to seek_by_read
26 */ 26 */
27extern void seek_by_char(const archive_handle_t *archive_handle, const unsigned int jump_size) 27void seek_by_char(const archive_handle_t *archive_handle, const unsigned int jump_size)
28{ 28{
29 if (jump_size) { 29 if (jump_size) {
30 bb_copyfd_size(archive_handle->src_fd, -1, jump_size); 30 bb_copyfd_size(archive_handle->src_fd, -1, jump_size);
diff --git a/archival/libunarchive/seek_by_jump.c b/archival/libunarchive/seek_by_jump.c
index 578870d9b..fb99b26a7 100644
--- a/archival/libunarchive/seek_by_jump.c
+++ b/archival/libunarchive/seek_by_jump.c
@@ -22,7 +22,7 @@
22#include "libbb.h" 22#include "libbb.h"
23#include "unarchive.h" 23#include "unarchive.h"
24 24
25extern void seek_by_jump(const archive_handle_t *archive_handle, const unsigned int amount) 25void seek_by_jump(const archive_handle_t *archive_handle, const unsigned int amount)
26{ 26{
27 if (lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1) { 27 if (lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1) {
28#ifdef CONFIG_FEATURE_UNARCHIVE_TAPE 28#ifdef CONFIG_FEATURE_UNARCHIVE_TAPE
diff --git a/archival/libunarchive/unpack_ar_archive.c b/archival/libunarchive/unpack_ar_archive.c
index fa48c6fca..7bb40af5b 100644
--- a/archival/libunarchive/unpack_ar_archive.c
+++ b/archival/libunarchive/unpack_ar_archive.c
@@ -19,7 +19,7 @@
19#include "unarchive.h" 19#include "unarchive.h"
20#include "busybox.h" 20#include "busybox.h"
21 21
22extern void unpack_ar_archive(archive_handle_t *ar_archive) 22void unpack_ar_archive(archive_handle_t *ar_archive)
23{ 23{
24 char magic[7]; 24 char magic[7];
25 25
diff --git a/archival/rpm2cpio.c b/archival/rpm2cpio.c
index 8316d2242..45a660113 100644
--- a/archival/rpm2cpio.c
+++ b/archival/rpm2cpio.c
@@ -66,7 +66,7 @@ static void skip_header(int rpm_fd)
66} 66}
67 67
68/* No getopt required */ 68/* No getopt required */
69extern int rpm2cpio_main(int argc, char **argv) 69int rpm2cpio_main(int argc, char **argv)
70{ 70{
71 struct rpm_lead lead; 71 struct rpm_lead lead;
72 int rpm_fd; 72 int rpm_fd;
diff --git a/archival/uncompress.c b/archival/uncompress.c
index 3bd87093e..8a874d09d 100644
--- a/archival/uncompress.c
+++ b/archival/uncompress.c
@@ -30,7 +30,7 @@
30#define GUNZIP_TO_STDOUT 1 30#define GUNZIP_TO_STDOUT 1
31#define GUNZIP_FORCE 2 31#define GUNZIP_FORCE 2
32 32
33extern int uncompress_main(int argc, char **argv) 33int uncompress_main(int argc, char **argv)
34{ 34{
35 int status = EXIT_SUCCESS; 35 int status = EXIT_SUCCESS;
36 unsigned long flags; 36 unsigned long flags;
diff --git a/archival/unzip.c b/archival/unzip.c
index f95e31206..9cf987664 100644
--- a/archival/unzip.c
+++ b/archival/unzip.c
@@ -125,7 +125,7 @@ static void unzip_extract(zip_header_t *zip_header, int src_fd, int dst_fd)
125 } 125 }
126} 126}
127 127
128extern int unzip_main(int argc, char **argv) 128int unzip_main(int argc, char **argv)
129{ 129{
130 zip_header_t zip_header; 130 zip_header_t zip_header;
131 enum {v_silent, v_normal, v_list} verbosity = v_normal; 131 enum {v_silent, v_normal, v_list} verbosity = v_normal;
diff --git a/console-tools/clear.c b/console-tools/clear.c
index 020cdfb47..054803703 100644
--- a/console-tools/clear.c
+++ b/console-tools/clear.c
@@ -27,7 +27,7 @@
27#include "busybox.h" 27#include "busybox.h"
28 28
29 29
30extern int clear_main(int argc, char **argv) 30int clear_main(int argc, char **argv)
31{ 31{
32 return printf("\033[H\033[J") != 6; 32 return printf("\033[H\033[J") != 6;
33} 33}
diff --git a/console-tools/loadfont.c b/console-tools/loadfont.c
index d9bbb2072..31c6d2495 100644
--- a/console-tools/loadfont.c
+++ b/console-tools/loadfont.c
@@ -39,7 +39,7 @@ struct psf_header {
39 39
40static void loadnewfont(int fd); 40static void loadnewfont(int fd);
41 41
42extern int loadfont_main(int argc, char **argv) 42int loadfont_main(int argc, char **argv)
43{ 43{
44 int fd; 44 int fd;
45 45
diff --git a/console-tools/reset.c b/console-tools/reset.c
index 5a7e88d7b..792618f5c 100644
--- a/console-tools/reset.c
+++ b/console-tools/reset.c
@@ -28,7 +28,7 @@
28#include <unistd.h> 28#include <unistd.h>
29#include "busybox.h" 29#include "busybox.h"
30 30
31extern int reset_main(int argc, char **argv) 31int reset_main(int argc, char **argv)
32{ 32{
33 if (isatty(1)) { 33 if (isatty(1)) {
34 /* See 'man 4 console_codes' for details: 34 /* See 'man 4 console_codes' for details:
diff --git a/coreutils/basename.c b/coreutils/basename.c
index 7b8b7b6f0..91652cfed 100644
--- a/coreutils/basename.c
+++ b/coreutils/basename.c
@@ -37,7 +37,7 @@
37#include <string.h> 37#include <string.h>
38#include "busybox.h" 38#include "busybox.h"
39 39
40extern int basename_main(int argc, char **argv) 40int basename_main(int argc, char **argv)
41{ 41{
42 size_t m, n; 42 size_t m, n;
43 char *s; 43 char *s;
diff --git a/coreutils/cat.c b/coreutils/cat.c
index 62af6c5d5..9645f6143 100644
--- a/coreutils/cat.c
+++ b/coreutils/cat.c
@@ -40,7 +40,7 @@
40#include <unistd.h> 40#include <unistd.h>
41#include "busybox.h" 41#include "busybox.h"
42 42
43extern int cat_main(int argc, char **argv) 43int cat_main(int argc, char **argv)
44{ 44{
45 FILE *f; 45 FILE *f;
46 int retval = EXIT_SUCCESS; 46 int retval = EXIT_SUCCESS;
diff --git a/coreutils/cp.c b/coreutils/cp.c
index ac572548f..87f229196 100644
--- a/coreutils/cp.c
+++ b/coreutils/cp.c
@@ -28,7 +28,7 @@
28#include "busybox.h" 28#include "busybox.h"
29#include "libcoreutils/coreutils.h" 29#include "libcoreutils/coreutils.h"
30 30
31extern int cp_main(int argc, char **argv) 31int cp_main(int argc, char **argv)
32{ 32{
33 struct stat source_stat; 33 struct stat source_stat;
34 struct stat dest_stat; 34 struct stat dest_stat;
diff --git a/coreutils/cut.c b/coreutils/cut.c
index 839bab68e..526a99393 100644
--- a/coreutils/cut.c
+++ b/coreutils/cut.c
@@ -289,7 +289,7 @@ static void cut_file(FILE *file)
289} 289}
290 290
291 291
292extern int cut_main(int argc, char **argv) 292int cut_main(int argc, char **argv)
293{ 293{
294 unsigned long opt; 294 unsigned long opt;
295 char *sopt, *sdopt; 295 char *sopt, *sdopt;
diff --git a/coreutils/df.c b/coreutils/df.c
index ef08f91d4..bd487ee95 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -46,7 +46,7 @@ static long kscale(long b, long bs)
46} 46}
47#endif 47#endif
48 48
49extern int df_main(int argc, char **argv) 49int df_main(int argc, char **argv)
50{ 50{
51 long blocks_used; 51 long blocks_used;
52 long blocks_percent_used; 52 long blocks_percent_used;
diff --git a/coreutils/dirname.c b/coreutils/dirname.c
index 5136e4909..dfe40e44b 100644
--- a/coreutils/dirname.c
+++ b/coreutils/dirname.c
@@ -27,7 +27,7 @@
27#include <stdlib.h> 27#include <stdlib.h>
28#include "busybox.h" 28#include "busybox.h"
29 29
30extern int dirname_main(int argc, char **argv) 30int dirname_main(int argc, char **argv)
31{ 31{
32 if (argc != 2) { 32 if (argc != 2) {
33 bb_show_usage(); 33 bb_show_usage();
diff --git a/coreutils/echo.c b/coreutils/echo.c
index 595e6defe..0dbb32f28 100644
--- a/coreutils/echo.c
+++ b/coreutils/echo.c
@@ -22,7 +22,7 @@
22#include <stdlib.h> 22#include <stdlib.h>
23#include "busybox.h" 23#include "busybox.h"
24 24
25extern int echo_main(int argc, char** argv) 25int echo_main(int argc, char** argv)
26{ 26{
27 (void)bb_echo(argc, argv); 27 (void)bb_echo(argc, argv);
28 bb_fflush_stdout_and_exit(EXIT_SUCCESS); 28 bb_fflush_stdout_and_exit(EXIT_SUCCESS);
diff --git a/coreutils/env.c b/coreutils/env.c
index 156f4e77d..fd58a23da 100644
--- a/coreutils/env.c
+++ b/coreutils/env.c
@@ -57,7 +57,7 @@ static const struct option env_long_options[] = {
57 { 0, 0, 0, 0 } 57 { 0, 0, 0, 0 }
58}; 58};
59 59
60extern int env_main(int argc, char** argv) 60int env_main(int argc, char** argv)
61{ 61{
62 static char *cleanenv[1] = { NULL }; 62 static char *cleanenv[1] = { NULL };
63 63
diff --git a/coreutils/false.c b/coreutils/false.c
index b06ef8b62..084bc0c1e 100644
--- a/coreutils/false.c
+++ b/coreutils/false.c
@@ -13,7 +13,7 @@
13#include <stdlib.h> 13#include <stdlib.h>
14#include "busybox.h" 14#include "busybox.h"
15 15
16extern int false_main(int ATTRIBUTE_UNUSED argc, char ATTRIBUTE_UNUSED **argv) 16int false_main(int ATTRIBUTE_UNUSED argc, char ATTRIBUTE_UNUSED **argv)
17{ 17{
18 return EXIT_FAILURE; 18 return EXIT_FAILURE;
19} 19}
diff --git a/coreutils/fold.c b/coreutils/fold.c
index f1ab1bdc0..833935af3 100644
--- a/coreutils/fold.c
+++ b/coreutils/fold.c
@@ -44,7 +44,7 @@ static int adjust_column(int column, char c)
44 return column; 44 return column;
45} 45}
46 46
47extern int fold_main(int argc, char **argv) 47int fold_main(int argc, char **argv)
48{ 48{
49 char *w_opt; 49 char *w_opt;
50 int width = 80; 50 int width = 80;
diff --git a/coreutils/hostid.c b/coreutils/hostid.c
index 0c11ca385..cda96726a 100644
--- a/coreutils/hostid.c
+++ b/coreutils/hostid.c
@@ -13,7 +13,7 @@
13#include <unistd.h> 13#include <unistd.h>
14#include "busybox.h" 14#include "busybox.h"
15 15
16extern int hostid_main(int argc, char ATTRIBUTE_UNUSED **argv) 16int hostid_main(int argc, char ATTRIBUTE_UNUSED **argv)
17{ 17{
18 if (argc > 1) { 18 if (argc > 1) {
19 bb_show_usage(); 19 bb_show_usage();
diff --git a/coreutils/id.c b/coreutils/id.c
index 39a57c196..73c3c2e3b 100644
--- a/coreutils/id.c
+++ b/coreutils/id.c
@@ -53,7 +53,7 @@ static short printf_full(unsigned int id, const char *arg, const char prefix)
53 return status; 53 return status;
54} 54}
55 55
56extern int id_main(int argc, char **argv) 56int id_main(int argc, char **argv)
57{ 57{
58 struct passwd *p; 58 struct passwd *p;
59 uid_t uid; 59 uid_t uid;
diff --git a/coreutils/install.c b/coreutils/install.c
index e58cac931..e8dd5060c 100644
--- a/coreutils/install.c
+++ b/coreutils/install.c
@@ -49,7 +49,7 @@ static const struct option install_long_options[] = {
49 { 0, 0, 0, 0 } 49 { 0, 0, 0, 0 }
50}; 50};
51 51
52extern int install_main(int argc, char **argv) 52int install_main(int argc, char **argv)
53{ 53{
54 mode_t mode; 54 mode_t mode;
55 uid_t uid; 55 uid_t uid;
diff --git a/coreutils/length.c b/coreutils/length.c
index bce43ab3f..55fef131b 100644
--- a/coreutils/length.c
+++ b/coreutils/length.c
@@ -7,7 +7,7 @@
7#include <stdio.h> 7#include <stdio.h>
8#include "busybox.h" 8#include "busybox.h"
9 9
10extern int length_main(int argc, char **argv) 10int length_main(int argc, char **argv)
11{ 11{
12 if ((argc != 2) || (**(++argv) == '-')) { 12 if ((argc != 2) || (**(++argv) == '-')) {
13 bb_show_usage(); 13 bb_show_usage();
diff --git a/coreutils/libcoreutils/cp_mv_stat.c b/coreutils/libcoreutils/cp_mv_stat.c
index 5a70b0221..d401bcc75 100644
--- a/coreutils/libcoreutils/cp_mv_stat.c
+++ b/coreutils/libcoreutils/cp_mv_stat.c
@@ -25,7 +25,7 @@
25#include "libbb.h" 25#include "libbb.h"
26#include "coreutils.h" 26#include "coreutils.h"
27 27
28extern int cp_mv_stat2(const char *fn, struct stat *fn_stat, stat_func sf) 28int cp_mv_stat2(const char *fn, struct stat *fn_stat, stat_func sf)
29{ 29{
30 if (sf(fn, fn_stat) < 0) { 30 if (sf(fn, fn_stat) < 0) {
31 if (errno != ENOENT) { 31 if (errno != ENOENT) {
@@ -39,7 +39,7 @@ extern int cp_mv_stat2(const char *fn, struct stat *fn_stat, stat_func sf)
39 return 1; 39 return 1;
40} 40}
41 41
42extern int cp_mv_stat(const char *fn, struct stat *fn_stat) 42int cp_mv_stat(const char *fn, struct stat *fn_stat)
43{ 43{
44 return cp_mv_stat2(fn, fn_stat, stat); 44 return cp_mv_stat2(fn, fn_stat, stat);
45} 45}
diff --git a/coreutils/libcoreutils/getopt_mk_fifo_nod.c b/coreutils/libcoreutils/getopt_mk_fifo_nod.c
index 090fefaee..d1f5b1e89 100644
--- a/coreutils/libcoreutils/getopt_mk_fifo_nod.c
+++ b/coreutils/libcoreutils/getopt_mk_fifo_nod.c
@@ -26,7 +26,7 @@
26#include "libbb.h" 26#include "libbb.h"
27#include "coreutils.h" 27#include "coreutils.h"
28 28
29extern mode_t getopt_mk_fifo_nod(int argc, char **argv) 29mode_t getopt_mk_fifo_nod(int argc, char **argv)
30{ 30{
31 mode_t mode = 0666; 31 mode_t mode = 0666;
32 char *smode = NULL; 32 char *smode = NULL;
diff --git a/coreutils/ln.c b/coreutils/ln.c
index dcb70d40f..229c68218 100644
--- a/coreutils/ln.c
+++ b/coreutils/ln.c
@@ -36,7 +36,7 @@
36#define LN_BACKUP 8 36#define LN_BACKUP 8
37#define LN_SUFFIX 16 37#define LN_SUFFIX 16
38 38
39extern int ln_main(int argc, char **argv) 39int ln_main(int argc, char **argv)
40{ 40{
41 int status = EXIT_SUCCESS; 41 int status = EXIT_SUCCESS;
42 int flag; 42 int flag;
diff --git a/coreutils/logname.c b/coreutils/logname.c
index e2a74f932..da8a1cfc9 100644
--- a/coreutils/logname.c
+++ b/coreutils/logname.c
@@ -25,7 +25,7 @@
25#include <unistd.h> 25#include <unistd.h>
26#include "busybox.h" 26#include "busybox.h"
27 27
28extern int logname_main(int argc, char ATTRIBUTE_UNUSED **argv) 28int logname_main(int argc, char ATTRIBUTE_UNUSED **argv)
29{ 29{
30 const char *p; 30 const char *p;
31 31
diff --git a/coreutils/ls.c b/coreutils/ls.c
index 79a583a1c..a575a02cb 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -955,7 +955,7 @@ static const unsigned opt_flags[] = {
955 955
956/*----------------------------------------------------------------------*/ 956/*----------------------------------------------------------------------*/
957 957
958extern int ls_main(int argc, char **argv) 958int ls_main(int argc, char **argv)
959{ 959{
960 struct dnode **dnd; 960 struct dnode **dnd;
961 struct dnode **dnf; 961 struct dnode **dnf;
diff --git a/coreutils/mkdir.c b/coreutils/mkdir.c
index e24ef4f89..48a95badb 100644
--- a/coreutils/mkdir.c
+++ b/coreutils/mkdir.c
@@ -40,7 +40,7 @@ static const struct option mkdir_long_options[] = {
40 { 0, 0, 0, 0 } 40 { 0, 0, 0, 0 }
41}; 41};
42 42
43extern int mkdir_main (int argc, char **argv) 43int mkdir_main (int argc, char **argv)
44{ 44{
45 mode_t mode = (mode_t)(-1); 45 mode_t mode = (mode_t)(-1);
46 int status = EXIT_SUCCESS; 46 int status = EXIT_SUCCESS;
diff --git a/coreutils/mkfifo.c b/coreutils/mkfifo.c
index 77e0e6dd8..2414be38e 100644
--- a/coreutils/mkfifo.c
+++ b/coreutils/mkfifo.c
@@ -29,7 +29,7 @@
29#include "busybox.h" 29#include "busybox.h"
30#include "libcoreutils/coreutils.h" 30#include "libcoreutils/coreutils.h"
31 31
32extern int mkfifo_main(int argc, char **argv) 32int mkfifo_main(int argc, char **argv)
33{ 33{
34 mode_t mode; 34 mode_t mode;
35 int retval = EXIT_SUCCESS; 35 int retval = EXIT_SUCCESS;
diff --git a/coreutils/mknod.c b/coreutils/mknod.c
index b6e85272d..cb5980b95 100644
--- a/coreutils/mknod.c
+++ b/coreutils/mknod.c
@@ -32,7 +32,7 @@
32static const char modes_chars[] = { 'p', 'c', 'u', 'b', 0, 1, 1, 2 }; 32static const char modes_chars[] = { 'p', 'c', 'u', 'b', 0, 1, 1, 2 };
33static const mode_t modes_cubp[] = { S_IFIFO, S_IFCHR, S_IFBLK }; 33static const mode_t modes_cubp[] = { S_IFIFO, S_IFCHR, S_IFBLK };
34 34
35extern int mknod_main(int argc, char **argv) 35int mknod_main(int argc, char **argv)
36{ 36{
37 mode_t mode; 37 mode_t mode;
38 dev_t dev; 38 dev_t dev;
diff --git a/coreutils/mv.c b/coreutils/mv.c
index aef1ed19a..1c0dc3d72 100644
--- a/coreutils/mv.c
+++ b/coreutils/mv.c
@@ -46,7 +46,7 @@ static const struct option mv_long_options[] = {
46 46
47static const char fmt[] = "cannot overwrite %sdirectory with %sdirectory"; 47static const char fmt[] = "cannot overwrite %sdirectory with %sdirectory";
48 48
49extern int mv_main(int argc, char **argv) 49int mv_main(int argc, char **argv)
50{ 50{
51 struct stat dest_stat; 51 struct stat dest_stat;
52 const char *last; 52 const char *last;
diff --git a/coreutils/pwd.c b/coreutils/pwd.c
index 7e0dc056a..33f80d004 100644
--- a/coreutils/pwd.c
+++ b/coreutils/pwd.c
@@ -24,7 +24,7 @@
24#include <stdlib.h> 24#include <stdlib.h>
25#include "busybox.h" 25#include "busybox.h"
26 26
27extern int pwd_main(int argc, char **argv) 27int pwd_main(int argc, char **argv)
28{ 28{
29 char *buf; 29 char *buf;
30 30
diff --git a/coreutils/rm.c b/coreutils/rm.c
index e4e9bb0be..59c639b88 100644
--- a/coreutils/rm.c
+++ b/coreutils/rm.c
@@ -32,7 +32,7 @@
32#include <unistd.h> 32#include <unistd.h>
33#include "busybox.h" 33#include "busybox.h"
34 34
35extern int rm_main(int argc, char **argv) 35int rm_main(int argc, char **argv)
36{ 36{
37 int status = 0; 37 int status = 0;
38 int flags = 0; 38 int flags = 0;
diff --git a/coreutils/rmdir.c b/coreutils/rmdir.c
index 1d6b2cadb..cc21f5df9 100644
--- a/coreutils/rmdir.c
+++ b/coreutils/rmdir.c
@@ -28,7 +28,7 @@
28#include <libgen.h> 28#include <libgen.h>
29#include "busybox.h" 29#include "busybox.h"
30 30
31extern int rmdir_main(int argc, char **argv) 31int rmdir_main(int argc, char **argv)
32{ 32{
33 int status = EXIT_SUCCESS; 33 int status = EXIT_SUCCESS;
34 int flags; 34 int flags;
diff --git a/coreutils/seq.c b/coreutils/seq.c
index 51e3add81..66141c4e2 100644
--- a/coreutils/seq.c
+++ b/coreutils/seq.c
@@ -11,7 +11,7 @@
11#include <stdlib.h> 11#include <stdlib.h>
12#include "busybox.h" 12#include "busybox.h"
13 13
14extern int seq_main(int argc, char **argv) 14int seq_main(int argc, char **argv)
15{ 15{
16 double last, first, increment, i; 16 double last, first, increment, i;
17 17
diff --git a/coreutils/sleep.c b/coreutils/sleep.c
index 506192dd3..c46a4e5f4 100644
--- a/coreutils/sleep.c
+++ b/coreutils/sleep.c
@@ -46,7 +46,7 @@ static const struct suffix_mult sleep_suffixes[] = {
46}; 46};
47#endif 47#endif
48 48
49extern int sleep_main(int argc, char **argv) 49int sleep_main(int argc, char **argv)
50{ 50{
51 unsigned int duration; 51 unsigned int duration;
52 52
diff --git a/coreutils/stty.c b/coreutils/stty.c
index 63d586e50..a3526136f 100644
--- a/coreutils/stty.c
+++ b/coreutils/stty.c
@@ -467,9 +467,9 @@ static const struct suffix_mult stty_suffixes[] = {
467}; 467};
468 468
469#ifndef TEST 469#ifndef TEST
470extern int stty_main(int argc, char **argv) 470int stty_main(int argc, char **argv)
471#else 471#else
472extern int main(int argc, char **argv) 472int main(int argc, char **argv)
473#endif 473#endif
474{ 474{
475 struct termios mode; 475 struct termios mode;
diff --git a/coreutils/sync.c b/coreutils/sync.c
index 84746311f..4e75e4f29 100644
--- a/coreutils/sync.c
+++ b/coreutils/sync.c
@@ -26,7 +26,7 @@
26#include <unistd.h> 26#include <unistd.h>
27#include "busybox.h" 27#include "busybox.h"
28 28
29extern int sync_main(int argc, char **argv) 29int sync_main(int argc, char **argv)
30{ 30{
31 bb_warn_ignoring_args(argc - 1); 31 bb_warn_ignoring_args(argc - 1);
32 32
diff --git a/coreutils/test.c b/coreutils/test.c
index d7bd5a0de..ecd154907 100644
--- a/coreutils/test.c
+++ b/coreutils/test.c
@@ -183,7 +183,7 @@ static int test_eaccess(char *path, int mode);
183static int is_a_group_member(gid_t gid); 183static int is_a_group_member(gid_t gid);
184static void initialize_group_array(void); 184static void initialize_group_array(void);
185 185
186extern int test_main(int argc, char **argv) 186int test_main(int argc, char **argv)
187{ 187{
188 int res; 188 int res;
189 189
diff --git a/coreutils/touch.c b/coreutils/touch.c
index 645fb2174..f78fe5114 100644
--- a/coreutils/touch.c
+++ b/coreutils/touch.c
@@ -39,7 +39,7 @@
39#include <stdlib.h> 39#include <stdlib.h>
40#include "busybox.h" 40#include "busybox.h"
41 41
42extern int touch_main(int argc, char **argv) 42int touch_main(int argc, char **argv)
43{ 43{
44 int fd; 44 int fd;
45 int flags; 45 int flags;
diff --git a/coreutils/tr.c b/coreutils/tr.c
index d6c5e346e..adddf83d2 100644
--- a/coreutils/tr.c
+++ b/coreutils/tr.c
@@ -202,7 +202,7 @@ static int complement(unsigned char *buffer, int buffer_len)
202 return ix; 202 return ix;
203} 203}
204 204
205extern int tr_main(int argc, char **argv) 205int tr_main(int argc, char **argv)
206{ 206{
207 register unsigned char *ptr; 207 register unsigned char *ptr;
208 int output_length=0, input_length; 208 int output_length=0, input_length;
diff --git a/coreutils/true.c b/coreutils/true.c
index 3e7eb0111..1f2768615 100644
--- a/coreutils/true.c
+++ b/coreutils/true.c
@@ -26,7 +26,7 @@
26#include <stdlib.h> 26#include <stdlib.h>
27#include "busybox.h" 27#include "busybox.h"
28 28
29extern int true_main(int argc, char **argv) 29int true_main(int argc, char **argv)
30{ 30{
31 return EXIT_SUCCESS; 31 return EXIT_SUCCESS;
32} 32}
diff --git a/coreutils/tty.c b/coreutils/tty.c
index cd2c784fd..6aea7a30f 100644
--- a/coreutils/tty.c
+++ b/coreutils/tty.c
@@ -28,7 +28,7 @@
28#include <unistd.h> 28#include <unistd.h>
29#include "busybox.h" 29#include "busybox.h"
30 30
31extern int tty_main(int argc, char **argv) 31int tty_main(int argc, char **argv)
32{ 32{
33 const char *s; 33 const char *s;
34 int silent; /* Note: No longer relevant in SUSv3. */ 34 int silent; /* Note: No longer relevant in SUSv3. */
diff --git a/coreutils/usleep.c b/coreutils/usleep.c
index f570f2734..9dd643f92 100644
--- a/coreutils/usleep.c
+++ b/coreutils/usleep.c
@@ -27,7 +27,7 @@
27#include <unistd.h> 27#include <unistd.h>
28#include "busybox.h" 28#include "busybox.h"
29 29
30extern int usleep_main(int argc, char **argv) 30int usleep_main(int argc, char **argv)
31{ 31{
32 if (argc != 2) { 32 if (argc != 2) {
33 bb_show_usage(); 33 bb_show_usage();
diff --git a/coreutils/uudecode.c b/coreutils/uudecode.c
index 5823afd90..310d5b6c4 100644
--- a/coreutils/uudecode.c
+++ b/coreutils/uudecode.c
@@ -138,7 +138,7 @@ static int read_base64(FILE *src_stream, FILE *dst_stream)
138 } 138 }
139} 139}
140 140
141extern int uudecode_main(int argc, char **argv) 141int uudecode_main(int argc, char **argv)
142{ 142{
143 int (*decode_fn_ptr) (FILE * src, FILE * dst); 143 int (*decode_fn_ptr) (FILE * src, FILE * dst);
144 FILE *src_stream; 144 FILE *src_stream;
diff --git a/coreutils/watch.c b/coreutils/watch.c
index 31fadfb85..9da591b48 100644
--- a/coreutils/watch.c
+++ b/coreutils/watch.c
@@ -39,7 +39,7 @@
39#include <sys/wait.h> 39#include <sys/wait.h>
40#include "busybox.h" 40#include "busybox.h"
41 41
42extern int watch_main(int argc, char **argv) 42int watch_main(int argc, char **argv)
43{ 43{
44 const int header_len = 40; 44 const int header_len = 40;
45 time_t t; 45 time_t t;
diff --git a/coreutils/who.c b/coreutils/who.c
index e2ea227eb..1156ba20f 100644
--- a/coreutils/who.c
+++ b/coreutils/who.c
@@ -25,7 +25,7 @@
25#include <time.h> 25#include <time.h>
26#include "busybox.h" 26#include "busybox.h"
27 27
28extern int who_main(int argc, char **argv) 28int who_main(int argc, char **argv)
29{ 29{
30 struct utmp *ut; 30 struct utmp *ut;
31 struct stat st; 31 struct stat st;
diff --git a/coreutils/whoami.c b/coreutils/whoami.c
index 16d28083c..71ef3537d 100644
--- a/coreutils/whoami.c
+++ b/coreutils/whoami.c
@@ -27,7 +27,7 @@
27#include <unistd.h> 27#include <unistd.h>
28#include "busybox.h" 28#include "busybox.h"
29 29
30extern int whoami_main(int argc, char **argv) 30int whoami_main(int argc, char **argv)
31{ 31{
32 if (argc > 1) 32 if (argc > 1)
33 bb_show_usage(); 33 bb_show_usage();
diff --git a/coreutils/yes.c b/coreutils/yes.c
index 74f7571cf..cafc16bc9 100644
--- a/coreutils/yes.c
+++ b/coreutils/yes.c
@@ -31,7 +31,7 @@
31#include <stdlib.h> 31#include <stdlib.h>
32#include "busybox.h" 32#include "busybox.h"
33 33
34extern int yes_main(int argc, char **argv) 34int yes_main(int argc, char **argv)
35{ 35{
36 static const char fmt_str[] = " %s"; 36 static const char fmt_str[] = " %s";
37 const char *fmt; 37 const char *fmt;
diff --git a/debianutils/mktemp.c b/debianutils/mktemp.c
index 64b82815e..09c79f504 100644
--- a/debianutils/mktemp.c
+++ b/debianutils/mktemp.c
@@ -16,7 +16,7 @@
16#include <stdlib.h> 16#include <stdlib.h>
17#include "busybox.h" 17#include "busybox.h"
18 18
19extern int mktemp_main(int argc, char **argv) 19int mktemp_main(int argc, char **argv)
20{ 20{
21 unsigned long flags = bb_getopt_ulflags(argc, argv, "dq"); 21 unsigned long flags = bb_getopt_ulflags(argc, argv, "dq");
22 22
diff --git a/debianutils/pipe_progress.c b/debianutils/pipe_progress.c
index ab05202eb..95db16783 100644
--- a/debianutils/pipe_progress.c
+++ b/debianutils/pipe_progress.c
@@ -31,7 +31,7 @@
31/* Read a block of data from stdin, write it to stdout. 31/* Read a block of data from stdin, write it to stdout.
32 * Activity is indicated by a '.' to stderr 32 * Activity is indicated by a '.' to stderr
33 */ 33 */
34extern int pipe_progress_main(int argc, char **argv) 34int pipe_progress_main(int argc, char **argv)
35{ 35{
36 RESERVE_CONFIG_BUFFER(buf, PIPE_PROGRESS_SIZE); 36 RESERVE_CONFIG_BUFFER(buf, PIPE_PROGRESS_SIZE);
37 time_t t = time(NULL); 37 time_t t = time(NULL);
diff --git a/debianutils/which.c b/debianutils/which.c
index deb036aa0..4d206ab29 100644
--- a/debianutils/which.c
+++ b/debianutils/which.c
@@ -16,7 +16,7 @@
16#include <sys/stat.h> 16#include <sys/stat.h>
17#include "busybox.h" 17#include "busybox.h"
18 18
19extern int which_main(int argc, char **argv) 19int which_main(int argc, char **argv)
20{ 20{
21 int status = EXIT_SUCCESS; 21 int status = EXIT_SUCCESS;
22 size_t i, count; 22 size_t i, count;
diff --git a/e2fsprogs/blkid/dev.c b/e2fsprogs/blkid/dev.c
index d2e468304..04cf8b5fa 100644
--- a/e2fsprogs/blkid/dev.c
+++ b/e2fsprogs/blkid/dev.c
@@ -52,7 +52,7 @@ void blkid_free_dev(blkid_dev dev)
52/* 52/*
53 * Given a blkid device, return its name 53 * Given a blkid device, return its name
54 */ 54 */
55extern const char *blkid_dev_devname(blkid_dev dev) 55const char *blkid_dev_devname(blkid_dev dev)
56{ 56{
57 return dev->bid_name; 57 return dev->bid_name;
58} 58}
@@ -80,7 +80,7 @@ struct blkid_struct_dev_iterate {
80 struct list_head *p; 80 struct list_head *p;
81}; 81};
82 82
83extern blkid_dev_iterate blkid_dev_iterate_begin(blkid_cache cache) 83blkid_dev_iterate blkid_dev_iterate_begin(blkid_cache cache)
84{ 84{
85 blkid_dev_iterate iter; 85 blkid_dev_iterate iter;
86 86
@@ -106,7 +106,7 @@ extern int blkid_dev_next(blkid_dev_iterate iter,
106 return 0; 106 return 0;
107} 107}
108 108
109extern void blkid_dev_iterate_end(blkid_dev_iterate iter) 109void blkid_dev_iterate_end(blkid_dev_iterate iter)
110{ 110{
111 if (!iter || iter->magic != DEV_ITERATE_MAGIC) 111 if (!iter || iter->magic != DEV_ITERATE_MAGIC)
112 return; 112 return;
diff --git a/e2fsprogs/blkid/tag.c b/e2fsprogs/blkid/tag.c
index 95112eba5..51615d4a5 100644
--- a/e2fsprogs/blkid/tag.c
+++ b/e2fsprogs/blkid/tag.c
@@ -236,7 +236,7 @@ struct blkid_struct_tag_iterate {
236 struct list_head *p; 236 struct list_head *p;
237}; 237};
238 238
239extern blkid_tag_iterate blkid_tag_iterate_begin(blkid_dev dev) 239blkid_tag_iterate blkid_tag_iterate_begin(blkid_dev dev)
240{ 240{
241 blkid_tag_iterate iter; 241 blkid_tag_iterate iter;
242 242
@@ -267,7 +267,7 @@ extern int blkid_tag_next(blkid_tag_iterate iter,
267 return 0; 267 return 0;
268} 268}
269 269
270extern void blkid_tag_iterate_end(blkid_tag_iterate iter) 270void blkid_tag_iterate_end(blkid_tag_iterate iter)
271{ 271{
272 if (!iter || iter->magic != TAG_ITERATE_MAGIC) 272 if (!iter || iter->magic != TAG_ITERATE_MAGIC)
273 return; 273 return;
diff --git a/e2fsprogs/e2fsck.c b/e2fsprogs/e2fsck.c
index 489d2a818..18dfd00b6 100644
--- a/e2fsprogs/e2fsck.c
+++ b/e2fsprogs/e2fsck.c
@@ -14897,7 +14897,7 @@ static float calc_percent(const struct percent_tbl *tbl, int pass, int curr,
14897 + tbl->table[pass-1]); 14897 + tbl->table[pass-1]);
14898} 14898}
14899 14899
14900extern void e2fsck_clear_progbar(e2fsck_t ctx) 14900void e2fsck_clear_progbar(e2fsck_t ctx)
14901{ 14901{
14902 if (!(ctx->flags & E2F_FLAG_PROG_BAR)) 14902 if (!(ctx->flags & E2F_FLAG_PROG_BAR))
14903 return; 14903 return;
diff --git a/editors/awk.c b/editors/awk.c
index 39717afae..65856aa55 100644
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -2612,7 +2612,7 @@ static rstream *next_input_file(void)
2612 return &rsm; 2612 return &rsm;
2613} 2613}
2614 2614
2615extern int awk_main(int argc, char **argv) 2615int awk_main(int argc, char **argv)
2616{ 2616{
2617 char *s, *s1; 2617 char *s, *s1;
2618 int i, j, c, flen; 2618 int i, j, c, flen;
diff --git a/editors/patch.c b/editors/patch.c
index 2248b61e2..9a3740882 100644
--- a/editors/patch.c
+++ b/editors/patch.c
@@ -88,7 +88,7 @@ static int file_doesnt_exist(const char *filename)
88 return(stat(filename, &statbuf)); 88 return(stat(filename, &statbuf));
89} 89}
90 90
91extern int patch_main(int argc, char **argv) 91int patch_main(int argc, char **argv)
92{ 92{
93 int patch_level = -1; 93 int patch_level = -1;
94 char *patch_line; 94 char *patch_line;
diff --git a/editors/sed.c b/editors/sed.c
index 32116fd29..93d3f89d1 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -1108,7 +1108,7 @@ static void add_cmd_block(char *cmdstr)
1108 free(temp); 1108 free(temp);
1109} 1109}
1110 1110
1111extern int sed_main(int argc, char **argv) 1111int sed_main(int argc, char **argv)
1112{ 1112{
1113 int status = EXIT_SUCCESS, opt, getpat = 1; 1113 int status = EXIT_SUCCESS, opt, getpat = 1;
1114 1114
diff --git a/editors/vi.c b/editors/vi.c
index bf537ee62..4dcef68f9 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -332,7 +332,7 @@ static void write1(const char *out)
332 fputs(out, stdout); 332 fputs(out, stdout);
333} 333}
334 334
335extern int vi_main(int argc, char **argv) 335int vi_main(int argc, char **argv)
336{ 336{
337 int c; 337 int c;
338 RESERVE_CONFIG_BUFFER(STATUS_BUFFER, STATUS_BUFFER_LEN); 338 RESERVE_CONFIG_BUFFER(STATUS_BUFFER, STATUS_BUFFER_LEN);
diff --git a/findutils/grep.c b/findutils/grep.c
index e1ce8e5fa..e5b5e3242 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -280,7 +280,7 @@ static void load_regexes_from_file(llist_t *fopt)
280} 280}
281 281
282 282
283extern int grep_main(int argc, char **argv) 283int grep_main(int argc, char **argv)
284{ 284{
285 FILE *file; 285 FILE *file;
286 int matched; 286 int matched;
diff --git a/init/init.c b/init/init.c
index c4d67a54b..b7bc7ef9f 100644
--- a/init/init.c
+++ b/init/init.c
@@ -1007,7 +1007,7 @@ static void reload_signal(int sig ATTRIBUTE_UNUSED)
1007} 1007}
1008#endif /* CONFIG_FEATURE_USE_INITTAB */ 1008#endif /* CONFIG_FEATURE_USE_INITTAB */
1009 1009
1010extern int init_main(int argc, char **argv) 1010int init_main(int argc, char **argv)
1011{ 1011{
1012 struct init_action *a; 1012 struct init_action *a;
1013 pid_t wpid; 1013 pid_t wpid;
diff --git a/init/init_shared.c b/init/init_shared.c
index 7e3cc100d..51e1496c2 100644
--- a/init/init_shared.c
+++ b/init/init_shared.c
@@ -18,7 +18,7 @@
18 18
19#ifndef CONFIG_INIT 19#ifndef CONFIG_INIT
20const char * const bb_shutdown_format = "\r%s\n"; 20const char * const bb_shutdown_format = "\r%s\n";
21extern int bb_shutdown_system(unsigned long magic) 21int bb_shutdown_system(unsigned long magic)
22{ 22{
23 int pri = LOG_KERN|LOG_NOTICE|LOG_FACMASK; 23 int pri = LOG_KERN|LOG_NOTICE|LOG_FACMASK;
24 const char *message; 24 const char *message;
diff --git a/init/mesg.c b/init/mesg.c
index f1cbe7ea0..874c22089 100644
--- a/init/mesg.c
+++ b/init/mesg.c
@@ -28,7 +28,7 @@
28#define S_IWGRP_OR_S_IWOTH (S_IWGRP | S_IWOTH) 28#define S_IWGRP_OR_S_IWOTH (S_IWGRP | S_IWOTH)
29#endif 29#endif
30 30
31extern int mesg_main(int argc, char *argv[]) 31int mesg_main(int argc, char *argv[])
32{ 32{
33 struct stat sb; 33 struct stat sb;
34 char *tty; 34 char *tty;
diff --git a/libbb/bb_echo.c b/libbb/bb_echo.c
index 41e6e4915..9ad73df85 100644
--- a/libbb/bb_echo.c
+++ b/libbb/bb_echo.c
@@ -28,7 +28,7 @@
28#include <string.h> 28#include <string.h>
29#include "busybox.h" 29#include "busybox.h"
30 30
31extern int bb_echo(int ATTRIBUTE_UNUSED argc, char **argv) 31int bb_echo(int ATTRIBUTE_UNUSED argc, char **argv)
32{ 32{
33#ifndef CONFIG_FEATURE_FANCY_ECHO 33#ifndef CONFIG_FEATURE_FANCY_ECHO
34#define eflag '\\' 34#define eflag '\\'
diff --git a/libbb/concat_path_file.c b/libbb/concat_path_file.c
index 029c23272..3c5460d47 100644
--- a/libbb/concat_path_file.c
+++ b/libbb/concat_path_file.c
@@ -28,7 +28,7 @@
28#include <string.h> 28#include <string.h>
29#include "libbb.h" 29#include "libbb.h"
30 30
31extern char *concat_path_file(const char *path, const char *filename) 31char *concat_path_file(const char *path, const char *filename)
32{ 32{
33 char *lc; 33 char *lc;
34 34
diff --git a/libbb/concat_subpath_file.c b/libbb/concat_subpath_file.c
index 6d86f5e8c..e72441999 100644
--- a/libbb/concat_subpath_file.c
+++ b/libbb/concat_subpath_file.c
@@ -28,7 +28,7 @@
28 28
29#include "libbb.h" 29#include "libbb.h"
30 30
31extern char *concat_subpath_file(const char *path, const char *f) 31char *concat_subpath_file(const char *path, const char *f)
32{ 32{
33 if(f && *f == '.' && (!f[1] || (f[1] == '.' && !f[2]))) 33 if(f && *f == '.' && (!f[1] || (f[1] == '.' && !f[2])))
34 return NULL; 34 return NULL;
diff --git a/libbb/copyfd.c b/libbb/copyfd.c
index 515253148..d138f3e59 100644
--- a/libbb/copyfd.c
+++ b/libbb/copyfd.c
@@ -62,7 +62,7 @@ out:
62} 62}
63 63
64 64
65extern int bb_copyfd_size(int fd1, int fd2, const off_t size) 65int bb_copyfd_size(int fd1, int fd2, const off_t size)
66{ 66{
67 if (size) { 67 if (size) {
68 return(bb_full_fd_action(fd1, fd2, size)); 68 return(bb_full_fd_action(fd1, fd2, size));
@@ -70,7 +70,7 @@ extern int bb_copyfd_size(int fd1, int fd2, const off_t size)
70 return(0); 70 return(0);
71} 71}
72 72
73extern int bb_copyfd_eof(int fd1, int fd2) 73int bb_copyfd_eof(int fd1, int fd2)
74{ 74{
75 return(bb_full_fd_action(fd1, fd2, 0)); 75 return(bb_full_fd_action(fd1, fd2, 0));
76} 76}
diff --git a/libbb/device_open.c b/libbb/device_open.c
index 61f954f46..df5eae9e4 100644
--- a/libbb/device_open.c
+++ b/libbb/device_open.c
@@ -25,7 +25,7 @@
25 25
26 26
27/* try to open up the specified device */ 27/* try to open up the specified device */
28extern int device_open(const char *device, int mode) 28int device_open(const char *device, int mode)
29{ 29{
30 int m, f, fd = -1; 30 int m, f, fd = -1;
31 31
diff --git a/libbb/error_msg.c b/libbb/error_msg.c
index 18811b8d1..2a90ba438 100644
--- a/libbb/error_msg.c
+++ b/libbb/error_msg.c
@@ -25,7 +25,7 @@
25#include <stdlib.h> 25#include <stdlib.h>
26#include "libbb.h" 26#include "libbb.h"
27 27
28extern void bb_error_msg(const char *s, ...) 28void bb_error_msg(const char *s, ...)
29{ 29{
30 va_list p; 30 va_list p;
31 31
diff --git a/libbb/error_msg_and_die.c b/libbb/error_msg_and_die.c
index 0937658a3..92043a535 100644
--- a/libbb/error_msg_and_die.c
+++ b/libbb/error_msg_and_die.c
@@ -25,7 +25,7 @@
25#include <stdlib.h> 25#include <stdlib.h>
26#include "libbb.h" 26#include "libbb.h"
27 27
28extern void bb_error_msg_and_die(const char *s, ...) 28void bb_error_msg_and_die(const char *s, ...)
29{ 29{
30 va_list p; 30 va_list p;
31 31
diff --git a/libbb/find_mount_point.c b/libbb/find_mount_point.c
index 4d27b4809..83527a8c8 100644
--- a/libbb/find_mount_point.c
+++ b/libbb/find_mount_point.c
@@ -32,7 +32,7 @@
32 * Given any other file (or directory), find the mount table entry for its 32 * Given any other file (or directory), find the mount table entry for its
33 * filesystem. 33 * filesystem.
34 */ 34 */
35extern struct mntent *find_mount_point(const char *name, const char *table) 35struct mntent *find_mount_point(const char *name, const char *table)
36{ 36{
37 struct stat s; 37 struct stat s;
38 dev_t mountDevice; 38 dev_t mountDevice;
diff --git a/libbb/find_pid_by_name.c b/libbb/find_pid_by_name.c
index 24084a34f..833c96f51 100644
--- a/libbb/find_pid_by_name.c
+++ b/libbb/find_pid_by_name.c
@@ -23,7 +23,7 @@
23 * Returns a list of all matching PIDs 23 * Returns a list of all matching PIDs
24 * It is the caller's duty to free the returned pidlist. 24 * It is the caller's duty to free the returned pidlist.
25 */ 25 */
26extern long* find_pid_by_name( const char* pidName) 26long* find_pid_by_name( const char* pidName)
27{ 27{
28 long* pidList; 28 long* pidList;
29 int i=0; 29 int i=0;
@@ -42,7 +42,7 @@ extern long* find_pid_by_name( const char* pidName)
42 return pidList; 42 return pidList;
43} 43}
44 44
45extern long *pidlist_reverse(long *pidList) 45long *pidlist_reverse(long *pidList)
46{ 46{
47 int i=0; 47 int i=0;
48 while (pidList[i] > 0 && ++i); 48 while (pidList[i] > 0 && ++i);
diff --git a/libbb/find_root_device.c b/libbb/find_root_device.c
index dfe0cfa7b..d1ffc87f5 100644
--- a/libbb/find_root_device.c
+++ b/libbb/find_root_device.c
@@ -26,7 +26,7 @@
26#include <stdlib.h> 26#include <stdlib.h>
27#include "libbb.h" 27#include "libbb.h"
28 28
29extern char *find_block_device(char *path) 29char *find_block_device(char *path)
30{ 30{
31 DIR *dir; 31 DIR *dir;
32 struct dirent *entry; 32 struct dirent *entry;
diff --git a/libbb/get_line_from_file.c b/libbb/get_line_from_file.c
index 5ad497ffa..44cf44869 100644
--- a/libbb/get_line_from_file.c
+++ b/libbb/get_line_from_file.c
@@ -45,14 +45,14 @@ char *bb_get_chunk_from_file(FILE *file, int *end)
45} 45}
46 46
47/* Get line, including trailing /n if any */ 47/* Get line, including trailing /n if any */
48extern char *bb_get_line_from_file(FILE *file) 48char *bb_get_line_from_file(FILE *file)
49{ 49{
50 int i; 50 int i;
51 return bb_get_chunk_from_file(file, &i); 51 return bb_get_chunk_from_file(file, &i);
52} 52}
53 53
54/* Get line. Remove trailing /n */ 54/* Get line. Remove trailing /n */
55extern char *bb_get_chomped_line_from_file(FILE *file) 55char *bb_get_chomped_line_from_file(FILE *file)
56{ 56{
57 int i; 57 int i;
58 char *c=bb_get_chunk_from_file(file, &i); 58 char *c=bb_get_chunk_from_file(file, &i);
diff --git a/libbb/herror_msg.c b/libbb/herror_msg.c
index 87ec15acc..d0d0a15d2 100644
--- a/libbb/herror_msg.c
+++ b/libbb/herror_msg.c
@@ -24,7 +24,7 @@
24 24
25#include "libbb.h" 25#include "libbb.h"
26 26
27extern void bb_herror_msg(const char *s, ...) 27void bb_herror_msg(const char *s, ...)
28{ 28{
29 va_list p; 29 va_list p;
30 30
diff --git a/libbb/herror_msg_and_die.c b/libbb/herror_msg_and_die.c
index 5c765f1be..9a76ef7e1 100644
--- a/libbb/herror_msg_and_die.c
+++ b/libbb/herror_msg_and_die.c
@@ -24,7 +24,7 @@
24 24
25#include "libbb.h" 25#include "libbb.h"
26 26
27extern void bb_herror_msg_and_die(const char *s, ...) 27void bb_herror_msg_and_die(const char *s, ...)
28{ 28{
29 va_list p; 29 va_list p;
30 30
diff --git a/libbb/kernel_version.c b/libbb/kernel_version.c
index e01aafa25..5f5d36df2 100644
--- a/libbb/kernel_version.c
+++ b/libbb/kernel_version.c
@@ -30,7 +30,7 @@
30 * so, for example, to check if the kernel is greater than 2.2.11: 30 * so, for example, to check if the kernel is greater than 2.2.11:
31 * if (get_kernel_revision() <= 2*65536+2*256+11) { <stuff> } 31 * if (get_kernel_revision() <= 2*65536+2*256+11) { <stuff> }
32 */ 32 */
33extern int get_kernel_revision(void) 33int get_kernel_revision(void)
34{ 34{
35 struct utsname name; 35 struct utsname name;
36 char *s; 36 char *s;
diff --git a/libbb/llist.c b/libbb/llist.c
index ce7daddee..af0a9948c 100644
--- a/libbb/llist.c
+++ b/libbb/llist.c
@@ -13,7 +13,7 @@
13 13
14#ifdef L_llist_add_to 14#ifdef L_llist_add_to
15/* Add data to the start of the linked list. */ 15/* Add data to the start of the linked list. */
16extern llist_t *llist_add_to(llist_t *old_head, char *new_item) 16llist_t *llist_add_to(llist_t *old_head, char *new_item)
17{ 17{
18 llist_t *new_head; 18 llist_t *new_head;
19 19
@@ -27,7 +27,7 @@ extern llist_t *llist_add_to(llist_t *old_head, char *new_item)
27 27
28#ifdef L_llist_add_to_end 28#ifdef L_llist_add_to_end
29/* Add data to the end of the linked list. */ 29/* Add data to the end of the linked list. */
30extern llist_t *llist_add_to_end(llist_t *list_head, char *data) 30llist_t *llist_add_to_end(llist_t *list_head, char *data)
31{ 31{
32 llist_t *new_item; 32 llist_t *new_item;
33 33
@@ -50,7 +50,7 @@ extern llist_t *llist_add_to_end(llist_t *list_head, char *data)
50#ifdef L_llist_free_one 50#ifdef L_llist_free_one
51/* Free the current list element and advance to the next entry in the list. 51/* Free the current list element and advance to the next entry in the list.
52 * Returns a pointer to the next element. */ 52 * Returns a pointer to the next element. */
53extern llist_t *llist_free_one(llist_t *elm) 53llist_t *llist_free_one(llist_t *elm)
54{ 54{
55 llist_t *next = elm ? elm->link : NULL; 55 llist_t *next = elm ? elm->link : NULL;
56#if ENABLE_DMALLOC /* avoid warnings from dmalloc's error-free-null option */ 56#if ENABLE_DMALLOC /* avoid warnings from dmalloc's error-free-null option */
@@ -64,7 +64,7 @@ extern llist_t *llist_free_one(llist_t *elm)
64 64
65#ifdef L_llist_free 65#ifdef L_llist_free
66/* Recursively free all elements in the linked list. */ 66/* Recursively free all elements in the linked list. */
67extern void llist_free(llist_t *elm) 67void llist_free(llist_t *elm)
68{ 68{
69 while ((elm = llist_free_one(elm))); 69 while ((elm = llist_free_one(elm)));
70} 70}
diff --git a/libbb/obscure.c b/libbb/obscure.c
index 4d159a771..6244970de 100644
--- a/libbb/obscure.c
+++ b/libbb/obscure.c
@@ -244,7 +244,7 @@ obscure_msg(const char *old, const char *newval, const struct passwd *pwdp)
244 * check passwords. 244 * check passwords.
245 */ 245 */
246 246
247extern int obscure(const char *old, const char *newval, const struct passwd *pwdp) 247int obscure(const char *old, const char *newval, const struct passwd *pwdp)
248{ 248{
249 const char *msg = obscure_msg(old, newval, pwdp); 249 const char *msg = obscure_msg(old, newval, pwdp);
250 250
diff --git a/libbb/parse_mode.c b/libbb/parse_mode.c
index 185957bc3..ffbf4e1d4 100644
--- a/libbb/parse_mode.c
+++ b/libbb/parse_mode.c
@@ -29,7 +29,7 @@
29 29
30#define FILEMODEBITS (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) 30#define FILEMODEBITS (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO)
31 31
32extern int bb_parse_mode(const char *s, mode_t *current_mode) 32int bb_parse_mode(const char *s, mode_t *current_mode)
33{ 33{
34 static const mode_t who_mask[] = { 34 static const mode_t who_mask[] = {
35 S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO, /* a */ 35 S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO, /* a */
diff --git a/libbb/perror_msg.c b/libbb/perror_msg.c
index 8ba053188..a0fdabc1d 100644
--- a/libbb/perror_msg.c
+++ b/libbb/perror_msg.c
@@ -25,7 +25,7 @@
25#include <stdlib.h> 25#include <stdlib.h>
26#include "libbb.h" 26#include "libbb.h"
27 27
28extern void bb_perror_msg(const char *s, ...) 28void bb_perror_msg(const char *s, ...)
29{ 29{
30 va_list p; 30 va_list p;
31 31
diff --git a/libbb/perror_msg_and_die.c b/libbb/perror_msg_and_die.c
index 15bf0421e..4a26dcce8 100644
--- a/libbb/perror_msg_and_die.c
+++ b/libbb/perror_msg_and_die.c
@@ -25,7 +25,7 @@
25#include <stdlib.h> 25#include <stdlib.h>
26#include "libbb.h" 26#include "libbb.h"
27 27
28extern void bb_perror_msg_and_die(const char *s, ...) 28void bb_perror_msg_and_die(const char *s, ...)
29{ 29{
30 va_list p; 30 va_list p;
31 31
diff --git a/libbb/perror_nomsg.c b/libbb/perror_nomsg.c
index 464cb86c4..479b2ba93 100644
--- a/libbb/perror_nomsg.c
+++ b/libbb/perror_nomsg.c
@@ -23,7 +23,7 @@
23#include <stddef.h> 23#include <stddef.h>
24#include <libbb.h> 24#include <libbb.h>
25 25
26extern void bb_perror_nomsg(void) 26void bb_perror_nomsg(void)
27{ 27{
28 /* Ignore the gcc warning about a null format string. */ 28 /* Ignore the gcc warning about a null format string. */
29 bb_perror_msg(NULL); 29 bb_perror_msg(NULL);
diff --git a/libbb/perror_nomsg_and_die.c b/libbb/perror_nomsg_and_die.c
index bab228455..7cbe35e3a 100644
--- a/libbb/perror_nomsg_and_die.c
+++ b/libbb/perror_nomsg_and_die.c
@@ -23,7 +23,7 @@
23#include <stddef.h> 23#include <stddef.h>
24#include "libbb.h" 24#include "libbb.h"
25 25
26extern void bb_perror_nomsg_and_die(void) 26void bb_perror_nomsg_and_die(void)
27{ 27{
28 /* Ignore the gcc warning about a null format string. */ 28 /* Ignore the gcc warning about a null format string. */
29 bb_perror_msg_and_die(NULL); 29 bb_perror_msg_and_die(NULL);
diff --git a/libbb/print_file.c b/libbb/print_file.c
index 963db1416..26bd0d458 100644
--- a/libbb/print_file.c
+++ b/libbb/print_file.c
@@ -24,7 +24,7 @@
24#include <unistd.h> 24#include <unistd.h>
25#include "libbb.h" 25#include "libbb.h"
26 26
27extern void bb_xprint_and_close_file(FILE *file) 27void bb_xprint_and_close_file(FILE *file)
28{ 28{
29 bb_xfflush_stdout(); 29 bb_xfflush_stdout();
30 /* Note: Do not use STDOUT_FILENO here, as this is a lib routine 30 /* Note: Do not use STDOUT_FILENO here, as this is a lib routine
@@ -45,7 +45,7 @@ extern void bb_xprint_and_close_file(FILE *file)
45 * exits with default error code if an error occurs 45 * exits with default error code if an error occurs
46 */ 46 */
47 47
48extern int bb_xprint_file_by_name(const char *filename) 48int bb_xprint_file_by_name(const char *filename)
49{ 49{
50 FILE *f; 50 FILE *f;
51 51
diff --git a/libbb/printf.c b/libbb/printf.c
index 2cba31792..e61723242 100644
--- a/libbb/printf.c
+++ b/libbb/printf.c
@@ -145,7 +145,7 @@ extern int bb_vfprintf(FILE * __restrict stream,
145#endif 145#endif
146 146
147#ifdef L_bb_vprintf 147#ifdef L_bb_vprintf
148extern int bb_vprintf(const char * __restrict format, va_list arg) 148int bb_vprintf(const char * __restrict format, va_list arg)
149{ 149{
150 return bb_vfprintf(stdout, format, arg); 150 return bb_vfprintf(stdout, format, arg);
151} 151}
@@ -167,7 +167,7 @@ extern int bb_fprintf(FILE * __restrict stream,
167#endif 167#endif
168 168
169#ifdef L_bb_printf 169#ifdef L_bb_printf
170extern int bb_printf(const char * __restrict format, ...) 170int bb_printf(const char * __restrict format, ...)
171{ 171{
172 va_list arg; 172 va_list arg;
173 int rv; 173 int rv;
diff --git a/libbb/procps.c b/libbb/procps.c
index 2ebe66e9d..e73c0dc64 100644
--- a/libbb/procps.c
+++ b/libbb/procps.c
@@ -34,7 +34,7 @@ static int read_to_buf(const char *filename, void *buf)
34} 34}
35 35
36 36
37extern procps_status_t * procps_scan(int save_user_arg0) 37procps_status_t * procps_scan(int save_user_arg0)
38{ 38{
39 static DIR *dir; 39 static DIR *dir;
40 struct dirent *entry; 40 struct dirent *entry;
diff --git a/libbb/pw_encrypt.c b/libbb/pw_encrypt.c
index 727149d0c..a15339974 100644
--- a/libbb/pw_encrypt.c
+++ b/libbb/pw_encrypt.c
@@ -25,7 +25,7 @@
25#include "libbb.h" 25#include "libbb.h"
26 26
27 27
28extern char *pw_encrypt(const char *clear, const char *salt) 28char *pw_encrypt(const char *clear, const char *salt)
29{ 29{
30 static char cipher[128]; 30 static char cipher[128];
31 char *cp; 31 char *cp;
diff --git a/libbb/remove_file.c b/libbb/remove_file.c
index 8b45c58b8..ee1aaa5cd 100644
--- a/libbb/remove_file.c
+++ b/libbb/remove_file.c
@@ -30,7 +30,7 @@
30#include <getopt.h> 30#include <getopt.h>
31#include "libbb.h" 31#include "libbb.h"
32 32
33extern int remove_file(const char *path, int flags) 33int remove_file(const char *path, int flags)
34{ 34{
35 struct stat path_stat; 35 struct stat path_stat;
36 int path_exists = 1; 36 int path_exists = 1;
diff --git a/libbb/run_parts.c b/libbb/run_parts.c
index 4c8841fe5..7f5fe459b 100644
--- a/libbb/run_parts.c
+++ b/libbb/run_parts.c
@@ -47,7 +47,7 @@ static int valid_name(const struct dirent *d)
47 * test_mode = 2 means to fail silently on missing directories 47 * test_mode = 2 means to fail silently on missing directories
48 */ 48 */
49 49
50extern int run_parts(char **args, const unsigned char test_mode, char **env) 50int run_parts(char **args, const unsigned char test_mode, char **env)
51{ 51{
52 struct dirent **namelist = 0; 52 struct dirent **namelist = 0;
53 struct stat st; 53 struct stat st;
diff --git a/libbb/safe_strncpy.c b/libbb/safe_strncpy.c
index 2016e6b52..d4275698c 100644
--- a/libbb/safe_strncpy.c
+++ b/libbb/safe_strncpy.c
@@ -25,7 +25,7 @@
25 25
26 26
27/* Like strncpy but make sure the resulting string is always 0 terminated. */ 27/* Like strncpy but make sure the resulting string is always 0 terminated. */
28extern char * safe_strncpy(char *dst, const char *src, size_t size) 28char * safe_strncpy(char *dst, const char *src, size_t size)
29{ 29{
30 dst[size-1] = '\0'; 30 dst[size-1] = '\0';
31 return strncpy(dst, src, size-1); 31 return strncpy(dst, src, size-1);
diff --git a/libbb/skip_whitespace.c b/libbb/skip_whitespace.c
index bf049a2d2..fd5d72540 100644
--- a/libbb/skip_whitespace.c
+++ b/libbb/skip_whitespace.c
@@ -23,7 +23,7 @@
23#include <ctype.h> 23#include <ctype.h>
24#include "libbb.h" 24#include "libbb.h"
25 25
26extern const char *bb_skip_whitespace(const char *s) 26const char *bb_skip_whitespace(const char *s)
27{ 27{
28 while (isspace(*s)) { 28 while (isspace(*s)) {
29 ++s; 29 ++s;
diff --git a/libbb/vdprintf.c b/libbb/vdprintf.c
index 53fdbd37a..96c71ea63 100644
--- a/libbb/vdprintf.c
+++ b/libbb/vdprintf.c
@@ -26,7 +26,7 @@
26 26
27 27
28#if (__GLIBC__ < 2) 28#if (__GLIBC__ < 2)
29extern int vdprintf(int d, const char *format, va_list ap) 29int vdprintf(int d, const char *format, va_list ap)
30{ 30{
31 char buf[BUF_SIZE]; 31 char buf[BUF_SIZE];
32 int len; 32 int len;
diff --git a/libbb/verror_msg.c b/libbb/verror_msg.c
index 07b37e4ad..d0fbb05c6 100644
--- a/libbb/verror_msg.c
+++ b/libbb/verror_msg.c
@@ -25,7 +25,7 @@
25#include <stdlib.h> 25#include <stdlib.h>
26#include "libbb.h" 26#include "libbb.h"
27 27
28extern void bb_verror_msg(const char *s, va_list p) 28void bb_verror_msg(const char *s, va_list p)
29{ 29{
30 fflush(stdout); 30 fflush(stdout);
31 fprintf(stderr, "%s: ", bb_applet_name); 31 fprintf(stderr, "%s: ", bb_applet_name);
diff --git a/libbb/vherror_msg.c b/libbb/vherror_msg.c
index 1560eb595..a5b1a7030 100644
--- a/libbb/vherror_msg.c
+++ b/libbb/vherror_msg.c
@@ -26,7 +26,7 @@
26#include "libbb.h" 26#include "libbb.h"
27 27
28 28
29extern void bb_vherror_msg(const char *s, va_list p) 29void bb_vherror_msg(const char *s, va_list p)
30{ 30{
31 if(s == 0) 31 if(s == 0)
32 s = ""; 32 s = "";
diff --git a/libbb/vperror_msg.c b/libbb/vperror_msg.c
index 5c446967a..ed4ac83cd 100644
--- a/libbb/vperror_msg.c
+++ b/libbb/vperror_msg.c
@@ -25,7 +25,7 @@
25#include <stdlib.h> 25#include <stdlib.h>
26#include "libbb.h" 26#include "libbb.h"
27 27
28extern void bb_vperror_msg(const char *s, va_list p) 28void bb_vperror_msg(const char *s, va_list p)
29{ 29{
30 int err=errno; 30 int err=errno;
31 if(s == 0) s = ""; 31 if(s == 0) s = "";
diff --git a/libbb/warn_ignoring_args.c b/libbb/warn_ignoring_args.c
index a1fa528f4..cc35fe26a 100644
--- a/libbb/warn_ignoring_args.c
+++ b/libbb/warn_ignoring_args.c
@@ -22,7 +22,7 @@
22 22
23#include <libbb.h> 23#include <libbb.h>
24 24
25extern void bb_warn_ignoring_args(int n) 25void bb_warn_ignoring_args(int n)
26{ 26{
27 if (n) { 27 if (n) {
28 bb_perror_msg("ignoring all arguments"); 28 bb_perror_msg("ignoring all arguments");
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c
index 6d54c1a79..4114090de 100644
--- a/libbb/xfuncs.c
+++ b/libbb/xfuncs.c
@@ -26,7 +26,7 @@
26 26
27#ifndef DMALLOC 27#ifndef DMALLOC
28#ifdef L_xmalloc 28#ifdef L_xmalloc
29extern void *xmalloc(size_t size) 29void *xmalloc(size_t size)
30{ 30{
31 void *ptr = malloc(size); 31 void *ptr = malloc(size);
32 if (ptr == NULL && size != 0) 32 if (ptr == NULL && size != 0)
@@ -36,7 +36,7 @@ extern void *xmalloc(size_t size)
36#endif 36#endif
37 37
38#ifdef L_xrealloc 38#ifdef L_xrealloc
39extern void *xrealloc(void *ptr, size_t size) 39void *xrealloc(void *ptr, size_t size)
40{ 40{
41 ptr = realloc(ptr, size); 41 ptr = realloc(ptr, size);
42 if (ptr == NULL && size != 0) 42 if (ptr == NULL && size != 0)
@@ -46,7 +46,7 @@ extern void *xrealloc(void *ptr, size_t size)
46#endif 46#endif
47 47
48#ifdef L_xcalloc 48#ifdef L_xcalloc
49extern void *xcalloc(size_t nmemb, size_t size) 49void *xcalloc(size_t nmemb, size_t size)
50{ 50{
51 void *ptr = calloc(nmemb, size); 51 void *ptr = calloc(nmemb, size);
52 if (ptr == NULL && nmemb != 0 && size != 0) 52 if (ptr == NULL && nmemb != 0 && size != 0)
@@ -96,7 +96,7 @@ FILE *bb_xfopen(const char *path, const char *mode)
96#endif 96#endif
97 97
98#ifdef L_xopen 98#ifdef L_xopen
99extern int bb_xopen(const char *pathname, int flags) 99int bb_xopen(const char *pathname, int flags)
100{ 100{
101 int ret; 101 int ret;
102 102
@@ -109,7 +109,7 @@ extern int bb_xopen(const char *pathname, int flags)
109#endif 109#endif
110 110
111#ifdef L_xread 111#ifdef L_xread
112extern ssize_t bb_xread(int fd, void *buf, size_t count) 112ssize_t bb_xread(int fd, void *buf, size_t count)
113{ 113{
114 ssize_t size; 114 ssize_t size;
115 115
@@ -122,7 +122,7 @@ extern ssize_t bb_xread(int fd, void *buf, size_t count)
122#endif 122#endif
123 123
124#ifdef L_xread_all 124#ifdef L_xread_all
125extern void bb_xread_all(int fd, void *buf, size_t count) 125void bb_xread_all(int fd, void *buf, size_t count)
126{ 126{
127 ssize_t size; 127 ssize_t size;
128 128
@@ -138,7 +138,7 @@ extern void bb_xread_all(int fd, void *buf, size_t count)
138#endif 138#endif
139 139
140#ifdef L_xread_char 140#ifdef L_xread_char
141extern unsigned char bb_xread_char(int fd) 141unsigned char bb_xread_char(int fd)
142{ 142{
143 char tmp; 143 char tmp;
144 144
@@ -149,7 +149,7 @@ extern unsigned char bb_xread_char(int fd)
149#endif 149#endif
150 150
151#ifdef L_xferror 151#ifdef L_xferror
152extern void bb_xferror(FILE *fp, const char *fn) 152void bb_xferror(FILE *fp, const char *fn)
153{ 153{
154 if (ferror(fp)) { 154 if (ferror(fp)) {
155 bb_error_msg_and_die("%s", fn); 155 bb_error_msg_and_die("%s", fn);
@@ -158,14 +158,14 @@ extern void bb_xferror(FILE *fp, const char *fn)
158#endif 158#endif
159 159
160#ifdef L_xferror_stdout 160#ifdef L_xferror_stdout
161extern void bb_xferror_stdout(void) 161void bb_xferror_stdout(void)
162{ 162{
163 bb_xferror(stdout, bb_msg_standard_output); 163 bb_xferror(stdout, bb_msg_standard_output);
164} 164}
165#endif 165#endif
166 166
167#ifdef L_xfflush_stdout 167#ifdef L_xfflush_stdout
168extern void bb_xfflush_stdout(void) 168void bb_xfflush_stdout(void)
169{ 169{
170 if (fflush(stdout)) { 170 if (fflush(stdout)) {
171 bb_perror_msg_and_die(bb_msg_standard_output); 171 bb_perror_msg_and_die(bb_msg_standard_output);
diff --git a/libbb/xgetlarg.c b/libbb/xgetlarg.c
index f332bb37e..6d3c4d1db 100644
--- a/libbb/xgetlarg.c
+++ b/libbb/xgetlarg.c
@@ -13,7 +13,7 @@
13 13
14#include "busybox.h" 14#include "busybox.h"
15 15
16extern long bb_xgetlarg(const char *arg, int base, long lower, long upper) 16long bb_xgetlarg(const char *arg, int base, long lower, long upper)
17{ 17{
18 long result; 18 long result;
19 char *endptr; 19 char *endptr;
diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c
index b3e3eda2b..1bc166bbc 100644
--- a/libbb/xreadlink.c
+++ b/libbb/xreadlink.c
@@ -13,7 +13,7 @@
13#include <unistd.h> 13#include <unistd.h>
14#include "libbb.h" 14#include "libbb.h"
15 15
16extern char *xreadlink(const char *path) 16char *xreadlink(const char *path)
17{ 17{
18 static const int GROWBY = 80; /* how large we will grow strings by */ 18 static const int GROWBY = 80; /* how large we will grow strings by */
19 19
diff --git a/loginutils/login.c b/loginutils/login.c
index 0f4b9ad9f..eadb17ddc 100644
--- a/loginutils/login.c
+++ b/loginutils/login.c
@@ -59,7 +59,7 @@ static void alarm_handler ( int sig ATTRIBUTE_UNUSED)
59} 59}
60 60
61 61
62extern int login_main(int argc, char **argv) 62int login_main(int argc, char **argv)
63{ 63{
64 char tty[BUFSIZ]; 64 char tty[BUFSIZ];
65 char full_tty[200]; 65 char full_tty[200];
diff --git a/loginutils/passwd.c b/loginutils/passwd.c
index c6920ffe7..611ced3a4 100644
--- a/loginutils/passwd.c
+++ b/loginutils/passwd.c
@@ -132,7 +132,7 @@ static int update_passwd(const struct passwd *pw, const char *crypt_pw)
132} 132}
133 133
134 134
135extern int passwd_main(int argc, char **argv) 135int passwd_main(int argc, char **argv)
136{ 136{
137 int amroot; 137 int amroot;
138 char *cp; 138 char *cp;
diff --git a/loginutils/sulogin.c b/loginutils/sulogin.c
index cecfa905a..8c5d88a62 100644
--- a/loginutils/sulogin.c
+++ b/loginutils/sulogin.c
@@ -46,7 +46,7 @@ static void catchalarm(int ATTRIBUTE_UNUSED junk)
46} 46}
47 47
48 48
49extern int sulogin_main(int argc, char **argv) 49int sulogin_main(int argc, char **argv)
50{ 50{
51 char *cp; 51 char *cp;
52 char *device = (char *) 0; 52 char *device = (char *) 0;
diff --git a/loginutils/vlock.c b/loginutils/vlock.c
index 0975b5156..6f391075b 100644
--- a/loginutils/vlock.c
+++ b/loginutils/vlock.c
@@ -66,7 +66,7 @@ static void restore_terminal(void)
66 tcsetattr(STDIN_FILENO, TCSANOW, &oterm); 66 tcsetattr(STDIN_FILENO, TCSANOW, &oterm);
67} 67}
68 68
69extern int vlock_main(int argc, char **argv) 69int vlock_main(int argc, char **argv)
70{ 70{
71 sigset_t sig; 71 sigset_t sig;
72 struct sigaction sa; 72 struct sigaction sa;
diff --git a/miscutils/eject.c b/miscutils/eject.c
index 189f54510..d4548628d 100644
--- a/miscutils/eject.c
+++ b/miscutils/eject.c
@@ -25,7 +25,7 @@
25#define CDROMEJECT 0x5309 /* Ejects the cdrom media */ 25#define CDROMEJECT 0x5309 /* Ejects the cdrom media */
26#define DEFAULT_CDROM "/dev/cdrom" 26#define DEFAULT_CDROM "/dev/cdrom"
27 27
28extern int eject_main(int argc, char **argv) 28int eject_main(int argc, char **argv)
29{ 29{
30 unsigned long flags; 30 unsigned long flags;
31 char *device; 31 char *device;
diff --git a/miscutils/last.c b/miscutils/last.c
index 72386ea94..e27e2f386 100644
--- a/miscutils/last.c
+++ b/miscutils/last.c
@@ -43,7 +43,7 @@
43#error struct utmp member char[] size(s) have changed! 43#error struct utmp member char[] size(s) have changed!
44#endif 44#endif
45 45
46extern int last_main(int argc, char **argv) 46int last_main(int argc, char **argv)
47{ 47{
48 struct utmp ut; 48 struct utmp ut;
49 int n, file = STDIN_FILENO; 49 int n, file = STDIN_FILENO;
diff --git a/miscutils/makedevs.c b/miscutils/makedevs.c
index 0268fbb9d..fa7535f05 100644
--- a/miscutils/makedevs.c
+++ b/miscutils/makedevs.c
@@ -77,7 +77,7 @@ int makedevs_main(int argc, char **argv)
77 77
78/* Licensed under the GPL v2 or later, see the file LICENSE in this tarball. */ 78/* Licensed under the GPL v2 or later, see the file LICENSE in this tarball. */
79 79
80extern int makedevs_main(int argc, char **argv) 80int makedevs_main(int argc, char **argv)
81{ 81{
82 FILE *table = stdin; 82 FILE *table = stdin;
83 char *rootdir = NULL; 83 char *rootdir = NULL;
diff --git a/miscutils/mt.c b/miscutils/mt.c
index b0cdaccb9..44efedbe3 100644
--- a/miscutils/mt.c
+++ b/miscutils/mt.c
@@ -50,7 +50,7 @@ static const struct mt_opcodes opcodes[] = {
50 {0, 0} 50 {0, 0}
51}; 51};
52 52
53extern int mt_main(int argc, char **argv) 53int mt_main(int argc, char **argv)
54{ 54{
55 const char *file = "/dev/tape"; 55 const char *file = "/dev/tape";
56 const struct mt_opcodes *code = opcodes; 56 const struct mt_opcodes *code = opcodes;
diff --git a/miscutils/time.c b/miscutils/time.c
index ca896a1c5..89c48547a 100644
--- a/miscutils/time.c
+++ b/miscutils/time.c
@@ -456,7 +456,7 @@ static void run_command (char *const *cmd, resource_t *resp)
456 signal (SIGQUIT, quit_signal); 456 signal (SIGQUIT, quit_signal);
457} 457}
458 458
459extern int time_main (int argc, char **argv) 459int time_main (int argc, char **argv)
460{ 460{
461 int gotone; 461 int gotone;
462 resource_t res; 462 resource_t res;
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 14322d978..8b112787f 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -3903,7 +3903,7 @@ static void print_load_map(struct obj_file *f)
3903 3903
3904#endif 3904#endif
3905 3905
3906extern int insmod_main( int argc, char **argv) 3906int insmod_main( int argc, char **argv)
3907{ 3907{
3908 int opt; 3908 int opt;
3909 int len; 3909 int len;
@@ -4267,7 +4267,7 @@ static const char *moderror(int err)
4267 } 4267 }
4268} 4268}
4269 4269
4270extern int insmod_ng_main( int argc, char **argv) 4270int insmod_ng_main( int argc, char **argv)
4271{ 4271{
4272 int i; 4272 int i;
4273 int fd; 4273 int fd;
diff --git a/modutils/lsmod.c b/modutils/lsmod.c
index 018bc5323..82136dd0f 100644
--- a/modutils/lsmod.c
+++ b/modutils/lsmod.c
@@ -97,7 +97,7 @@ static const int NEW_MOD_VISITED = 8;
97static const int NEW_MOD_USED_ONCE = 16; 97static const int NEW_MOD_USED_ONCE = 16;
98static const int NEW_MOD_INITIALIZING = 64; 98static const int NEW_MOD_INITIALIZING = 64;
99 99
100extern int lsmod_main(int argc, char **argv) 100int lsmod_main(int argc, char **argv)
101{ 101{
102 struct module_info info; 102 struct module_info info;
103 char *module_names, *mn, *deps, *dn; 103 char *module_names, *mn, *deps, *dn;
@@ -160,7 +160,7 @@ extern int lsmod_main(int argc, char **argv)
160 160
161#else /* CONFIG_FEATURE_QUERY_MODULE_INTERFACE */ 161#else /* CONFIG_FEATURE_QUERY_MODULE_INTERFACE */
162 162
163extern int lsmod_main(int argc, char **argv) 163int lsmod_main(int argc, char **argv)
164{ 164{
165 printf("Module Size Used by"); 165 printf("Module Size Used by");
166 check_tainted(); 166 check_tainted();
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index d04c7ffff..c16151537 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -823,7 +823,7 @@ static int mod_remove ( char *mod )
823 823
824} 824}
825 825
826extern int modprobe_main(int argc, char** argv) 826int modprobe_main(int argc, char** argv)
827{ 827{
828 int rc = EXIT_SUCCESS; 828 int rc = EXIT_SUCCESS;
829 char *unused; 829 char *unused;
diff --git a/modutils/rmmod.c b/modutils/rmmod.c
index 44c606e47..5302ab222 100644
--- a/modutils/rmmod.c
+++ b/modutils/rmmod.c
@@ -55,7 +55,7 @@ static inline void filename2modname(char *modname, const char *afterslash)
55} 55}
56#endif 56#endif
57 57
58extern int rmmod_main(int argc, char **argv) 58int rmmod_main(int argc, char **argv)
59{ 59{
60 int n, ret = EXIT_SUCCESS; 60 int n, ret = EXIT_SUCCESS;
61 unsigned int flags = O_NONBLOCK|O_EXCL; 61 unsigned int flags = O_NONBLOCK|O_EXCL;
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index 9e6fc6291..c3cfcd8b3 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -1133,7 +1133,7 @@ static llist_t *find_iface_state(llist_t *state_list, const char *iface)
1133 return(NULL); 1133 return(NULL);
1134} 1134}
1135 1135
1136extern int ifupdown_main(int argc, char **argv) 1136int ifupdown_main(int argc, char **argv)
1137{ 1137{
1138 int (*cmds) (struct interface_defn_t *) = NULL; 1138 int (*cmds) (struct interface_defn_t *) = NULL;
1139 struct interfaces_file_t *defn; 1139 struct interfaces_file_t *defn;
diff --git a/networking/libiproute/ipaddress.c b/networking/libiproute/ipaddress.c
index d7a0c5177..bcb4880a6 100644
--- a/networking/libiproute/ipaddress.c
+++ b/networking/libiproute/ipaddress.c
@@ -414,7 +414,7 @@ static void ipaddr_reset_filter(int _oneline)
414 filter.oneline = _oneline; 414 filter.oneline = _oneline;
415} 415}
416 416
417extern int ipaddr_list_or_flush(int argc, char **argv, int flush) 417int ipaddr_list_or_flush(int argc, char **argv, int flush)
418{ 418{
419 static const char *const option[] = { "to", "scope", "up", "label", "dev", 0 }; 419 static const char *const option[] = { "to", "scope", "up", "label", "dev", 0 };
420 420
@@ -805,7 +805,7 @@ static int ipaddr_modify(int cmd, int argc, char **argv)
805 exit(0); 805 exit(0);
806} 806}
807 807
808extern int do_ipaddr(int argc, char **argv) 808int do_ipaddr(int argc, char **argv)
809{ 809{
810 static const char *const commands[] = { 810 static const char *const commands[] = {
811 "add", "delete", "list", "show", "lst", "flush", 0 811 "add", "delete", "list", "show", "lst", "flush", 0
diff --git a/networking/ping.c b/networking/ping.c
index 14373c8d6..47b9f8f52 100644
--- a/networking/ping.c
+++ b/networking/ping.c
@@ -138,7 +138,7 @@ static void ping(const char *host)
138 return; 138 return;
139} 139}
140 140
141extern int ping_main(int argc, char **argv) 141int ping_main(int argc, char **argv)
142{ 142{
143 argc--; 143 argc--;
144 argv++; 144 argv++;
@@ -377,7 +377,7 @@ static void ping(const char *host)
377 pingstats(0); 377 pingstats(0);
378} 378}
379 379
380extern int ping_main(int argc, char **argv) 380int ping_main(int argc, char **argv)
381{ 381{
382 char *thisarg; 382 char *thisarg;
383 383
diff --git a/networking/ping6.c b/networking/ping6.c
index 1d7271d7b..42cf2785c 100644
--- a/networking/ping6.c
+++ b/networking/ping6.c
@@ -139,7 +139,7 @@ static void ping(const char *host)
139 return; 139 return;
140} 140}
141 141
142extern int ping6_main(int argc, char **argv) 142int ping6_main(int argc, char **argv)
143{ 143{
144 argc--; 144 argc--;
145 argv++; 145 argv++;
@@ -423,7 +423,7 @@ static void ping(const char *host)
423 pingstats(0); 423 pingstats(0);
424} 424}
425 425
426extern int ping6_main(int argc, char **argv) 426int ping6_main(int argc, char **argv)
427{ 427{
428 char *thisarg; 428 char *thisarg;
429 429
diff --git a/networking/telnet.c b/networking/telnet.c
index 05c7786ab..ca4896bf0 100644
--- a/networking/telnet.c
+++ b/networking/telnet.c
@@ -613,7 +613,7 @@ static void cookmode(void)
613 if (G.do_termios) tcsetattr(0, TCSADRAIN, &G.termios_def); 613 if (G.do_termios) tcsetattr(0, TCSADRAIN, &G.termios_def);
614} 614}
615 615
616extern int telnet_main(int argc, char** argv) 616int telnet_main(int argc, char** argv)
617{ 617{
618 int len; 618 int len;
619 struct sockaddr_in s_in; 619 struct sockaddr_in s_in;
diff --git a/procps/free.c b/procps/free.c
index 4fb047d48..b4163f108 100644
--- a/procps/free.c
+++ b/procps/free.c
@@ -27,7 +27,7 @@
27#include <stdlib.h> 27#include <stdlib.h>
28#include "busybox.h" 28#include "busybox.h"
29 29
30extern int free_main(int argc, char **argv) 30int free_main(int argc, char **argv)
31{ 31{
32 struct sysinfo info; 32 struct sysinfo info;
33 sysinfo(&info); 33 sysinfo(&info);
diff --git a/procps/kill.c b/procps/kill.c
index ff620eef4..90114a493 100644
--- a/procps/kill.c
+++ b/procps/kill.c
@@ -35,7 +35,7 @@
35#define KILL 0 35#define KILL 0
36#define KILLALL 1 36#define KILLALL 1
37 37
38extern int kill_main(int argc, char **argv) 38int kill_main(int argc, char **argv)
39{ 39{
40 int whichApp, signo = SIGTERM; 40 int whichApp, signo = SIGTERM;
41 const char *name; 41 const char *name;
diff --git a/procps/pidof.c b/procps/pidof.c
index c142e33c8..5b3e53fdf 100644
--- a/procps/pidof.c
+++ b/procps/pidof.c
@@ -42,7 +42,7 @@
42#define omitted (0) 42#define omitted (0)
43#endif 43#endif
44 44
45extern int pidof_main(int argc, char **argv) 45int pidof_main(int argc, char **argv)
46{ 46{
47 unsigned n = 0; 47 unsigned n = 0;
48 unsigned fail = 1; 48 unsigned fail = 1;
diff --git a/procps/ps.c b/procps/ps.c
index 9dd0e036e..b6242d208 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -22,7 +22,7 @@
22#include <selinux/selinux.h> /* for is_selinux_enabled() */ 22#include <selinux/selinux.h> /* for is_selinux_enabled() */
23#endif 23#endif
24 24
25extern int ps_main(int argc, char **argv) 25int ps_main(int argc, char **argv)
26{ 26{
27 procps_status_t * p; 27 procps_status_t * p;
28 int i, len; 28 int i, len;
diff --git a/procps/uptime.c b/procps/uptime.c
index 004288993..7784850ae 100644
--- a/procps/uptime.c
+++ b/procps/uptime.c
@@ -43,7 +43,7 @@
43#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100) 43#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)
44 44
45 45
46extern int uptime_main(int argc, char **argv) 46int uptime_main(int argc, char **argv)
47{ 47{
48 int updays, uphours, upminutes; 48 int updays, uphours, upminutes;
49 struct sysinfo info; 49 struct sysinfo info;
diff --git a/shell/cmdedit.c b/shell/cmdedit.c
index f999b88e9..31f4c7b20 100644
--- a/shell/cmdedit.c
+++ b/shell/cmdedit.c
@@ -1191,7 +1191,7 @@ static int get_next_history(void)
1191} 1191}
1192 1192
1193#ifdef CONFIG_FEATURE_COMMAND_SAVEHISTORY 1193#ifdef CONFIG_FEATURE_COMMAND_SAVEHISTORY
1194extern void load_history ( const char *fromfile ) 1194void load_history ( const char *fromfile )
1195{ 1195{
1196 FILE *fp; 1196 FILE *fp;
1197 int hi; 1197 int hi;
@@ -1225,7 +1225,7 @@ extern void load_history ( const char *fromfile )
1225 cur_history = n_history = hi; 1225 cur_history = n_history = hi;
1226} 1226}
1227 1227
1228extern void save_history ( const char *tofile ) 1228void save_history ( const char *tofile )
1229{ 1229{
1230 FILE *fp = fopen ( tofile, "w" ); 1230 FILE *fp = fopen ( tofile, "w" );
1231 1231
diff --git a/shell/msh.c b/shell/msh.c
index 375b1266e..b3bb06b28 100644
--- a/shell/msh.c
+++ b/shell/msh.c
@@ -819,7 +819,7 @@ static char *current_prompt;
819 */ 819 */
820 820
821 821
822extern int msh_main(int argc, char **argv) 822int msh_main(int argc, char **argv)
823{ 823{
824 REGISTER int f; 824 REGISTER int f;
825 REGISTER char *s; 825 REGISTER char *s;
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c
index 5be833f5b..51b01430e 100644
--- a/sysklogd/klogd.c
+++ b/sysklogd/klogd.c
@@ -103,7 +103,7 @@ static void doKlogd(const int console_log_level)
103#define OPT_LEVEL 1 103#define OPT_LEVEL 1
104#define OPT_FOREGROUND 2 104#define OPT_FOREGROUND 2
105 105
106extern int klogd_main(int argc, char **argv) 106int klogd_main(int argc, char **argv)
107{ 107{
108 unsigned long opt; 108 unsigned long opt;
109 char *c_arg; 109 char *c_arg;
diff --git a/sysklogd/logger.c b/sysklogd/logger.c
index 4e2e50f36..0c6fb0845 100644
--- a/sysklogd/logger.c
+++ b/sysklogd/logger.c
@@ -100,7 +100,7 @@ static int pencode(char *s)
100} 100}
101 101
102 102
103extern int logger_main(int argc, char **argv) 103int logger_main(int argc, char **argv)
104{ 104{
105 int pri = LOG_USER | LOG_NOTICE; 105 int pri = LOG_USER | LOG_NOTICE;
106 int option = 0; 106 int option = 0;
diff --git a/sysklogd/logread.c b/sysklogd/logread.c
index 8ea8047f7..73ad5a8fe 100644
--- a/sysklogd/logread.c
+++ b/sysklogd/logread.c
@@ -75,7 +75,7 @@ static inline void sem_down(int semid)
75 error_exit("semop[SMrdn]"); 75 error_exit("semop[SMrdn]");
76} 76}
77 77
78extern int logread_main(int argc, char **argv) 78int logread_main(int argc, char **argv)
79{ 79{
80 int i; 80 int i;
81 int follow=0; 81 int follow=0;
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
index 447d891bd..bb8ba1b82 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
@@ -602,7 +602,7 @@ static void doSyslogd(void)
602 } /* for main loop */ 602 } /* for main loop */
603} 603}
604 604
605extern int syslogd_main(int argc, char **argv) 605int syslogd_main(int argc, char **argv)
606{ 606{
607 int opt; 607 int opt;
608 608
diff --git a/util-linux/fbset.c b/util-linux/fbset.c
index 49435c22e..2e895be8d 100644
--- a/util-linux/fbset.c
+++ b/util-linux/fbset.c
@@ -332,7 +332,7 @@ static inline void showmode(struct fb_var_screeninfo *v)
332#ifdef STANDALONE 332#ifdef STANDALONE
333int main(int argc, char **argv) 333int main(int argc, char **argv)
334#else 334#else
335extern int fbset_main(int argc, char **argv) 335int fbset_main(int argc, char **argv)
336#endif 336#endif
337{ 337{
338 struct fb_var_screeninfo var, varset; 338 struct fb_var_screeninfo var, varset;
diff --git a/util-linux/fdflush.c b/util-linux/fdflush.c
index f3afea320..79c8f454f 100644
--- a/util-linux/fdflush.c
+++ b/util-linux/fdflush.c
@@ -31,7 +31,7 @@
31/* From <linux/fd.h> */ 31/* From <linux/fd.h> */
32#define FDFLUSH _IO(2,0x4b) 32#define FDFLUSH _IO(2,0x4b)
33 33
34extern int fdflush_main(int argc, char **argv) 34int fdflush_main(int argc, char **argv)
35{ 35{
36 int fd, result; 36 int fd, result;
37 37
diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c
index 1814537c5..1d3e90aa8 100644
--- a/util-linux/fsck_minix.c
+++ b/util-linux/fsck_minix.c
@@ -1321,7 +1321,7 @@ static void free_name_list(void)
1321} 1321}
1322#endif 1322#endif
1323 1323
1324extern int fsck_minix_main(int argc, char **argv) 1324int fsck_minix_main(int argc, char **argv)
1325{ 1325{
1326 struct termios tmp; 1326 struct termios tmp;
1327 int count; 1327 int count;
diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c
index 00abe10a6..126caf6be 100644
--- a/util-linux/hwclock.c
+++ b/util-linux/hwclock.c
@@ -192,7 +192,7 @@ static int check_utc(void)
192#define HWCLOCK_OPT_HCTOSYS 0x08 192#define HWCLOCK_OPT_HCTOSYS 0x08
193#define HWCLOCK_OPT_SYSTOHC 0x10 193#define HWCLOCK_OPT_SYSTOHC 0x10
194 194
195extern int hwclock_main ( int argc, char **argv ) 195int hwclock_main ( int argc, char **argv )
196{ 196{
197 unsigned long opt; 197 unsigned long opt;
198 int utc; 198 int utc;
diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c
index b1d538dcc..904a58ee3 100644
--- a/util-linux/mkfs_minix.c
+++ b/util-linux/mkfs_minix.c
@@ -694,7 +694,7 @@ static void get_list_blocks(char *filename)
694 printf("one bad block\n"); 694 printf("one bad block\n");
695} 695}
696 696
697extern int mkfs_minix_main(int argc, char **argv) 697int mkfs_minix_main(int argc, char **argv)
698{ 698{
699 int i=1; 699 int i=1;
700 char *tmp; 700 char *tmp;
diff --git a/util-linux/more.c b/util-linux/more.c
index e91038883..beba64282 100644
--- a/util-linux/more.c
+++ b/util-linux/more.c
@@ -57,7 +57,7 @@ static void gotsig(int sig)
57#endif /* CONFIG_FEATURE_USE_TERMIOS */ 57#endif /* CONFIG_FEATURE_USE_TERMIOS */
58 58
59 59
60extern int more_main(int argc, char **argv) 60int more_main(int argc, char **argv)
61{ 61{
62 int c, lines, input = 0; 62 int c, lines, input = 0;
63 int please_display_more_prompt = 0; 63 int please_display_more_prompt = 0;
diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c
index c624e74e3..ce55a132a 100644
--- a/util-linux/swaponoff.c
+++ b/util-linux/swaponoff.c
@@ -66,7 +66,7 @@ static int do_em_all(void)
66 66
67#define DO_ALL 0x01 67#define DO_ALL 0x01
68 68
69extern int swap_on_off_main(int argc, char **argv) 69int swap_on_off_main(int argc, char **argv)
70{ 70{
71 int ret; 71 int ret;
72 72
diff --git a/util-linux/umount.c b/util-linux/umount.c
index 8c0558466..71ddbd4ed 100644
--- a/util-linux/umount.c
+++ b/util-linux/umount.c
@@ -30,7 +30,7 @@
30#define OPT_IGNORED 32 // -v is ignored 30#define OPT_IGNORED 32 // -v is ignored
31#define OPT_ALL (ENABLE_FEATURE_UMOUNT_ALL ? 64 : 0) 31#define OPT_ALL (ENABLE_FEATURE_UMOUNT_ALL ? 64 : 0)
32 32
33extern int umount_main(int argc, char **argv) 33int umount_main(int argc, char **argv)
34{ 34{
35 int doForce; 35 int doForce;
36 char path[2*PATH_MAX]; 36 char path[2*PATH_MAX];