From 65d898209f1063e88397d8b1411d3b9df3f797ee Mon Sep 17 00:00:00 2001
From: landley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Date: Mon, 6 Mar 2006 20:47:33 +0000
Subject: Robert P. Day removed 8 gazillion occurrences of "extern" on function
 definitions.  (That should only be on prototypes.)

git-svn-id: svn://busybox.net/trunk/busybox@14457 69ca8d6d-28ef-0310-b511-8ec308f3f277
---
 applets/applets.c                                   |  2 +-
 archival/ar.c                                       |  2 +-
 archival/cpio.c                                     |  2 +-
 archival/dpkg_deb.c                                 |  2 +-
 archival/gunzip.c                                   |  2 +-
 archival/libunarchive/archive_xread_all.c           |  2 +-
 archival/libunarchive/archive_xread_all_eof.c       |  2 +-
 archival/libunarchive/check_header_gzip.c           |  2 +-
 archival/libunarchive/data_align.c                  |  2 +-
 archival/libunarchive/data_extract_all.c            |  2 +-
 archival/libunarchive/data_extract_to_buffer.c      |  2 +-
 archival/libunarchive/data_extract_to_stdout.c      |  2 +-
 archival/libunarchive/data_skip.c                   |  2 +-
 archival/libunarchive/decompress_bunzip2.c          |  2 +-
 archival/libunarchive/decompress_uncompress.c       |  2 +-
 archival/libunarchive/decompress_unzip.c            |  8 ++++----
 archival/libunarchive/filter_accept_all.c           |  2 +-
 archival/libunarchive/filter_accept_list.c          |  2 +-
 archival/libunarchive/filter_accept_list_reassign.c |  2 +-
 archival/libunarchive/filter_accept_reject_list.c   |  2 +-
 archival/libunarchive/find_list_entry.c             |  2 +-
 archival/libunarchive/get_header_ar.c               |  2 +-
 archival/libunarchive/get_header_cpio.c             |  2 +-
 archival/libunarchive/get_header_tar.c              |  2 +-
 archival/libunarchive/get_header_tar_bz2.c          |  2 +-
 archival/libunarchive/get_header_tar_gz.c           |  2 +-
 archival/libunarchive/header_list.c                 |  2 +-
 archival/libunarchive/header_skip.c                 |  2 +-
 archival/libunarchive/header_verbose_list.c         |  2 +-
 archival/libunarchive/open_transformer.c            |  2 +-
 archival/libunarchive/seek_by_char.c                |  2 +-
 archival/libunarchive/seek_by_jump.c                |  2 +-
 archival/libunarchive/unpack_ar_archive.c           |  2 +-
 archival/rpm2cpio.c                                 |  2 +-
 archival/uncompress.c                               |  2 +-
 archival/unzip.c                                    |  2 +-
 console-tools/clear.c                               |  2 +-
 console-tools/loadfont.c                            |  2 +-
 console-tools/reset.c                               |  2 +-
 coreutils/basename.c                                |  2 +-
 coreutils/cat.c                                     |  2 +-
 coreutils/cp.c                                      |  2 +-
 coreutils/cut.c                                     |  2 +-
 coreutils/df.c                                      |  2 +-
 coreutils/dirname.c                                 |  2 +-
 coreutils/echo.c                                    |  2 +-
 coreutils/env.c                                     |  2 +-
 coreutils/false.c                                   |  2 +-
 coreutils/fold.c                                    |  2 +-
 coreutils/hostid.c                                  |  2 +-
 coreutils/id.c                                      |  2 +-
 coreutils/install.c                                 |  2 +-
 coreutils/length.c                                  |  2 +-
 coreutils/libcoreutils/cp_mv_stat.c                 |  4 ++--
 coreutils/libcoreutils/getopt_mk_fifo_nod.c         |  2 +-
 coreutils/ln.c                                      |  2 +-
 coreutils/logname.c                                 |  2 +-
 coreutils/ls.c                                      |  2 +-
 coreutils/mkdir.c                                   |  2 +-
 coreutils/mkfifo.c                                  |  2 +-
 coreutils/mknod.c                                   |  2 +-
 coreutils/mv.c                                      |  2 +-
 coreutils/pwd.c                                     |  2 +-
 coreutils/rm.c                                      |  2 +-
 coreutils/rmdir.c                                   |  2 +-
 coreutils/seq.c                                     |  2 +-
 coreutils/sleep.c                                   |  2 +-
 coreutils/stty.c                                    |  4 ++--
 coreutils/sync.c                                    |  2 +-
 coreutils/test.c                                    |  2 +-
 coreutils/touch.c                                   |  2 +-
 coreutils/tr.c                                      |  2 +-
 coreutils/true.c                                    |  2 +-
 coreutils/tty.c                                     |  2 +-
 coreutils/usleep.c                                  |  2 +-
 coreutils/uudecode.c                                |  2 +-
 coreutils/watch.c                                   |  2 +-
 coreutils/who.c                                     |  2 +-
 coreutils/whoami.c                                  |  2 +-
 coreutils/yes.c                                     |  2 +-
 debianutils/mktemp.c                                |  2 +-
 debianutils/pipe_progress.c                         |  2 +-
 debianutils/which.c                                 |  2 +-
 e2fsprogs/blkid/dev.c                               |  6 +++---
 e2fsprogs/blkid/tag.c                               |  4 ++--
 e2fsprogs/e2fsck.c                                  |  2 +-
 editors/awk.c                                       |  2 +-
 editors/patch.c                                     |  2 +-
 editors/sed.c                                       |  2 +-
 editors/vi.c                                        |  2 +-
 findutils/grep.c                                    |  2 +-
 init/init.c                                         |  2 +-
 init/init_shared.c                                  |  2 +-
 init/mesg.c                                         |  2 +-
 libbb/bb_echo.c                                     |  2 +-
 libbb/concat_path_file.c                            |  2 +-
 libbb/concat_subpath_file.c                         |  2 +-
 libbb/copyfd.c                                      |  4 ++--
 libbb/device_open.c                                 |  2 +-
 libbb/error_msg.c                                   |  2 +-
 libbb/error_msg_and_die.c                           |  2 +-
 libbb/find_mount_point.c                            |  2 +-
 libbb/find_pid_by_name.c                            |  4 ++--
 libbb/find_root_device.c                            |  2 +-
 libbb/get_line_from_file.c                          |  4 ++--
 libbb/herror_msg.c                                  |  2 +-
 libbb/herror_msg_and_die.c                          |  2 +-
 libbb/kernel_version.c                              |  2 +-
 libbb/llist.c                                       |  8 ++++----
 libbb/obscure.c                                     |  2 +-
 libbb/parse_mode.c                                  |  2 +-
 libbb/perror_msg.c                                  |  2 +-
 libbb/perror_msg_and_die.c                          |  2 +-
 libbb/perror_nomsg.c                                |  2 +-
 libbb/perror_nomsg_and_die.c                        |  2 +-
 libbb/print_file.c                                  |  4 ++--
 libbb/printf.c                                      |  4 ++--
 libbb/procps.c                                      |  2 +-
 libbb/pw_encrypt.c                                  |  2 +-
 libbb/remove_file.c                                 |  2 +-
 libbb/run_parts.c                                   |  2 +-
 libbb/safe_strncpy.c                                |  2 +-
 libbb/skip_whitespace.c                             |  2 +-
 libbb/vdprintf.c                                    |  2 +-
 libbb/verror_msg.c                                  |  2 +-
 libbb/vherror_msg.c                                 |  2 +-
 libbb/vperror_msg.c                                 |  2 +-
 libbb/warn_ignoring_args.c                          |  2 +-
 libbb/xfuncs.c                                      | 20 ++++++++++----------
 libbb/xgetlarg.c                                    |  2 +-
 libbb/xreadlink.c                                   |  2 +-
 loginutils/login.c                                  |  2 +-
 loginutils/passwd.c                                 |  2 +-
 loginutils/sulogin.c                                |  2 +-
 loginutils/vlock.c                                  |  2 +-
 miscutils/eject.c                                   |  2 +-
 miscutils/last.c                                    |  2 +-
 miscutils/makedevs.c                                |  2 +-
 miscutils/mt.c                                      |  2 +-
 miscutils/time.c                                    |  2 +-
 modutils/insmod.c                                   |  4 ++--
 modutils/lsmod.c                                    |  4 ++--
 modutils/modprobe.c                                 |  2 +-
 modutils/rmmod.c                                    |  2 +-
 networking/ifupdown.c                               |  2 +-
 networking/libiproute/ipaddress.c                   |  4 ++--
 networking/ping.c                                   |  4 ++--
 networking/ping6.c                                  |  4 ++--
 networking/telnet.c                                 |  2 +-
 procps/free.c                                       |  2 +-
 procps/kill.c                                       |  2 +-
 procps/pidof.c                                      |  2 +-
 procps/ps.c                                         |  2 +-
 procps/uptime.c                                     |  2 +-
 shell/cmdedit.c                                     |  4 ++--
 shell/msh.c                                         |  2 +-
 sysklogd/klogd.c                                    |  2 +-
 sysklogd/logger.c                                   |  2 +-
 sysklogd/logread.c                                  |  2 +-
 sysklogd/syslogd.c                                  |  2 +-
 util-linux/fbset.c                                  |  2 +-
 util-linux/fdflush.c                                |  2 +-
 util-linux/fsck_minix.c                             |  2 +-
 util-linux/hwclock.c                                |  2 +-
 util-linux/mkfs_minix.c                             |  2 +-
 util-linux/more.c                                   |  2 +-
 util-linux/swaponoff.c                              |  2 +-
 util-linux/umount.c                                 |  2 +-
 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)
 
 
 
-extern void bb_show_usage (void)
+void bb_show_usage (void)
 {
   const char *format_string;
   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)
 #define AR_OPT_CREATE		0x20
 #define AR_OPT_INSERT		0x40
 
-extern int ar_main(int argc, char **argv)
+int ar_main(int argc, char **argv)
 {
 	archive_handle_t *archive_handle;
 	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 @@
 #define CPIO_OPT_CREATE_LEADING_DIR	0x20
 #define CPIO_OPT_PRESERVE_MTIME		0x40
 
-extern int cpio_main(int argc, char **argv)
+int cpio_main(int argc, char **argv)
 {
 	archive_handle_t *archive_handle;
 	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 @@
 #define DPKG_DEB_OPT_EXTRACT	8
 #define DPKG_DEB_OPT_EXTRACT_VERBOSE	16
 
-extern int dpkg_deb_main(int argc, char **argv)
+int dpkg_deb_main(int argc, char **argv)
 {
 	archive_handle_t *ar_archive;
 	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[] = {
 #define GUNZIP_OPT_TEST		4
 #define GUNZIP_OPT_DECOMPRESS	8
 
-extern int gunzip_main(int argc, char **argv)
+int gunzip_main(int argc, char **argv)
 {
 	char status = EXIT_SUCCESS;
 	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 @@
 #include "unarchive.h"
 #include "libbb.h"
 
-extern void archive_xread_all(const archive_handle_t *archive_handle, void *buf, const size_t count)
+void archive_xread_all(const archive_handle_t *archive_handle, void *buf, const size_t count)
 {
 	ssize_t size;
 
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 @@
 #include "unarchive.h"
 #include "libbb.h"
 
-extern ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, unsigned char *buf, size_t count)
+ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, unsigned char *buf, size_t count)
 {
 	ssize_t size;
 
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 @@
 #include "libbb.h"
 #include "unarchive.h" /* for external decl of check_header_gzip */
 
-extern void check_header_gzip(int src_fd)
+void check_header_gzip(int src_fd)
 {
 	union {
 		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 @@
 #include "libbb.h"
 #include "unarchive.h"
 
-extern void data_align(archive_handle_t *archive_handle, const unsigned short boundary)
+void data_align(archive_handle_t *archive_handle, const unsigned short boundary)
 {
 	const unsigned short skip_amount = (boundary - (archive_handle->offset % boundary)) % boundary;
 
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 @@
 #include "libbb.h"
 #include "unarchive.h"
 
-extern void data_extract_all(archive_handle_t *archive_handle)
+void data_extract_all(archive_handle_t *archive_handle)
 {
 	file_header_t *file_header = archive_handle->file_header;
 	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 @@
 #include "libbb.h"
 #include "unarchive.h"
 
-extern void data_extract_to_buffer(archive_handle_t *archive_handle)
+void data_extract_to_buffer(archive_handle_t *archive_handle)
 {
 	const unsigned int size = archive_handle->file_header->size;
 
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 @@
 #include "unarchive.h"
 #include <unistd.h>
 
-extern void data_extract_to_stdout(archive_handle_t *archive_handle)
+void data_extract_to_stdout(archive_handle_t *archive_handle)
 {
 	bb_copyfd_size(archive_handle->src_fd, STDOUT_FILENO, archive_handle->file_header->size);
 }
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 @@
 #include "unarchive.h"
 #include "libbb.h"
 
-extern void data_skip(archive_handle_t *archive_handle)
+void data_skip(archive_handle_t *archive_handle)
 {
 	archive_handle->seek(archive_handle, archive_handle->file_header->size);
 }
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,
 /* Example usage: decompress src_fd to dst_fd.  (Stops at end of bzip data,
    not end of file.) */
 
-extern int uncompressStream(int src_fd, int dst_fd)
+int uncompressStream(int src_fd, int dst_fd)
 {
 	char *outbuf;
 	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];
  * with those of the compress() routine.  See the definitions above.
  */
 
-extern int uncompress(int fd_in, int fd_out)
+int uncompress(int fd_in, int fd_out)
 {
 	unsigned char *stackp;
 	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)
 }
 
 /* Initialise bytebuffer, be careful not to overfill the buffer */
-extern void inflate_init(unsigned int bufsize)
+void inflate_init(unsigned int bufsize)
 {
 	/* Set the bytebuffer size, default is same as gunzip_wsize */
 	bytebuffer_max = bufsize + 8;
@@ -900,12 +900,12 @@ extern void inflate_init(unsigned int bufsize)
 	bytebuffer_size = 0;
 }
 
-extern void inflate_cleanup(void)
+void inflate_cleanup(void)
 {
 	free(bytebuffer);
 }
 
-extern int inflate_unzip(int in, int out)
+int inflate_unzip(int in, int out)
 {
 	ssize_t nwrote;
 	typedef void (*sig_type) (int);
@@ -952,7 +952,7 @@ extern int inflate_unzip(int in, int out)
 	return 0;
 }
 
-extern int inflate_gunzip(int in, int out)
+int inflate_gunzip(int in, int out)
 {
 	unsigned int stored_crc = 0;
 	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 @@
 #include "unarchive.h"
 
 /* Accept any non-null name, its not really a filter at all */
-extern char filter_accept_all(archive_handle_t *archive_handle)
+char filter_accept_all(archive_handle_t *archive_handle)
 {
 	if (archive_handle->file_header->name) {
 		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 @@
 /*
  * Accept names that are in the accept list, ignoring reject list.
  */
-extern char filter_accept_list(archive_handle_t *archive_handle)
+char filter_accept_list(archive_handle_t *archive_handle)
 {
 	if (find_list_entry(archive_handle->accept, archive_handle->file_header->name)) {
 		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 @@
  *  e.g. if its a .tar.gz modify archive_handle->sub_archive to process a .tar.gz
  *       or if its a .tar.bz2 make archive_handle->sub_archive handle that
  */
-extern char filter_accept_list_reassign(archive_handle_t *archive_handle)
+char filter_accept_list_reassign(archive_handle_t *archive_handle)
 {
 	/* Check the file entry is in the accept list */
 	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 @@
 /*
  * Accept names that are in the accept list and not in the reject list
  */
-extern char filter_accept_reject_list(archive_handle_t *archive_handle)
+char filter_accept_reject_list(archive_handle_t *archive_handle)
 {
 	const char *key = archive_handle->file_header->name;
 	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 @@
 #include <stdlib.h>
 #include "unarchive.h"
 
-extern const llist_t *find_list_entry(const llist_t *list, const char *filename)
+const llist_t *find_list_entry(const llist_t *list, const char *filename)
 {
 	while (list) {
 		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 @@
 #include "unarchive.h"
 #include "libbb.h"
 
-extern char get_header_ar(archive_handle_t *archive_handle)
+char get_header_ar(archive_handle_t *archive_handle)
 {
 	file_header_t *typed = archive_handle->file_header;
 	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 {
 	struct hardlinks_s *next;
 } hardlinks_t;
 
-extern char get_header_cpio(archive_handle_t *archive_handle)
+char get_header_cpio(archive_handle_t *archive_handle)
 {
 	static hardlinks_t *saved_hardlinks = NULL;
 	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;
 static char *linkname = NULL;
 #endif
 
-extern char get_header_tar(archive_handle_t *archive_handle)
+char get_header_tar(archive_handle_t *archive_handle)
 {
 	file_header_t *file_header = archive_handle->file_header;
 	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 @@
 #include "libbb.h"
 #include "unarchive.h"
 
-extern char get_header_tar_bz2(archive_handle_t *archive_handle)
+char get_header_tar_bz2(archive_handle_t *archive_handle)
 {
 	/* Cant lseek over pipe's */
 	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 @@
 #include "libbb.h"
 #include "unarchive.h"
 
-extern char get_header_tar_gz(archive_handle_t *archive_handle)
+char get_header_tar_gz(archive_handle_t *archive_handle)
 {
 	unsigned char magic[2];
 
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 @@
 #include <stdio.h>
 #include "unarchive.h"
 
-extern void header_list(const file_header_t *file_header)
+void header_list(const file_header_t *file_header)
 {
 	puts(file_header->name);
 }
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 @@
 #include <stdio.h>
 #include "unarchive.h"
 
-extern void header_skip(const file_header_t *file_header ATTRIBUTE_UNUSED)
+void header_skip(const file_header_t *file_header ATTRIBUTE_UNUSED)
 {
 }
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 @@
 #include "libbb.h"
 #include "unarchive.h"
 
-extern void header_verbose_list(const file_header_t *file_header)
+void header_verbose_list(const file_header_t *file_header)
 {
 	struct tm *mtime = localtime(&(file_header->mtime));
 
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 @@
 #include "libbb.h"
 
 /* transformer(), more than meets the eye */
-extern int open_transformer(int src_fd, int (*transformer)(int src_fd, int dst_fd))
+int open_transformer(int src_fd, int (*transformer)(int src_fd, int dst_fd))
 {
 	int fd_pipe[2];
 	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 @@
  *
  *  TODO: rename to seek_by_read
  */
-extern void seek_by_char(const archive_handle_t *archive_handle, const unsigned int jump_size)
+void seek_by_char(const archive_handle_t *archive_handle, const unsigned int jump_size)
 {
 	if (jump_size) {
 		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 @@
 #include "libbb.h"
 #include "unarchive.h"
 
-extern void seek_by_jump(const archive_handle_t *archive_handle, const unsigned int amount)
+void seek_by_jump(const archive_handle_t *archive_handle, const unsigned int amount)
 {
 	if (lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1) {
 #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 @@
 #include "unarchive.h"
 #include "busybox.h"
 
-extern void unpack_ar_archive(archive_handle_t *ar_archive)
+void unpack_ar_archive(archive_handle_t *ar_archive)
 {
 	char magic[7];
 
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)
 }
 
 /* No getopt required */
-extern int rpm2cpio_main(int argc, char **argv)
+int rpm2cpio_main(int argc, char **argv)
 {
 	struct rpm_lead lead;
 	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 @@
 #define GUNZIP_TO_STDOUT	1
 #define GUNZIP_FORCE	2
 
-extern int uncompress_main(int argc, char **argv)
+int uncompress_main(int argc, char **argv)
 {
 	int status = EXIT_SUCCESS;
 	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)
 	}
 }
 
-extern int unzip_main(int argc, char **argv)
+int unzip_main(int argc, char **argv)
 {
 	zip_header_t zip_header;
 	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 @@
 #include "busybox.h"
 
 
-extern int clear_main(int argc, char **argv)
+int clear_main(int argc, char **argv)
 {
 	return printf("\033[H\033[J") != 6;
 }
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 {
 
 static void loadnewfont(int fd);
 
-extern int loadfont_main(int argc, char **argv)
+int loadfont_main(int argc, char **argv)
 {
 	int fd;
 
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 @@
 #include <unistd.h>
 #include "busybox.h"
 
-extern int reset_main(int argc, char **argv)
+int reset_main(int argc, char **argv)
 {
 	if (isatty(1)) {
 		/* 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 @@
 #include <string.h>
 #include "busybox.h"
 
-extern int basename_main(int argc, char **argv)
+int basename_main(int argc, char **argv)
 {
 	size_t m, n;
 	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 @@
 #include <unistd.h>
 #include "busybox.h"
 
-extern int cat_main(int argc, char **argv)
+int cat_main(int argc, char **argv)
 {
 	FILE *f;
 	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 @@
 #include "busybox.h"
 #include "libcoreutils/coreutils.h"
 
-extern int cp_main(int argc, char **argv)
+int cp_main(int argc, char **argv)
 {
 	struct stat source_stat;
 	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)
 }
 
 
-extern int cut_main(int argc, char **argv)
+int cut_main(int argc, char **argv)
 {
 	unsigned long opt;
 	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)
 }
 #endif
 
-extern int df_main(int argc, char **argv)
+int df_main(int argc, char **argv)
 {
 	long blocks_used;
 	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 @@
 #include <stdlib.h>
 #include "busybox.h"
 
-extern int dirname_main(int argc, char **argv)
+int dirname_main(int argc, char **argv)
 {
 	if (argc != 2) {
 		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 @@
 #include <stdlib.h>
 #include "busybox.h"
 
-extern int echo_main(int argc, char** argv)
+int echo_main(int argc, char** argv)
 {
 	(void)bb_echo(argc, argv);
 	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[] = {
 	{ 0, 0, 0, 0 }
 };
 
-extern int env_main(int argc, char** argv)
+int env_main(int argc, char** argv)
 {
 	static char *cleanenv[1] = { NULL };
 
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 @@
 #include <stdlib.h>
 #include "busybox.h"
 
-extern int false_main(int ATTRIBUTE_UNUSED argc, char ATTRIBUTE_UNUSED **argv)
+int false_main(int ATTRIBUTE_UNUSED argc, char ATTRIBUTE_UNUSED **argv)
 {
 	return EXIT_FAILURE;
 }
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)
 	return column;
 }
 
-extern int fold_main(int argc, char **argv)
+int fold_main(int argc, char **argv)
 {
 	char *w_opt;
 	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 @@
 #include <unistd.h>
 #include "busybox.h"
 
-extern int hostid_main(int argc, char ATTRIBUTE_UNUSED **argv)
+int hostid_main(int argc, char ATTRIBUTE_UNUSED **argv)
 {
 	if (argc > 1) {
 		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)
 	return status;
 }
 
-extern int id_main(int argc, char **argv)
+int id_main(int argc, char **argv)
 {
 	struct passwd *p;
 	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[] = {
 	{ 0,	0,	0,	0 }
 };
 
-extern int install_main(int argc, char **argv)
+int install_main(int argc, char **argv)
 {
 	mode_t mode;
 	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 @@
 #include <stdio.h>
 #include "busybox.h"
 
-extern int length_main(int argc, char **argv)
+int length_main(int argc, char **argv)
 {
 	if ((argc != 2) ||  (**(++argv) == '-')) {
 	    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 @@
 #include "libbb.h"
 #include "coreutils.h"
 
-extern int cp_mv_stat2(const char *fn, struct stat *fn_stat, stat_func sf)
+int cp_mv_stat2(const char *fn, struct stat *fn_stat, stat_func sf)
 {
 	if (sf(fn, fn_stat) < 0) {
 		if (errno != ENOENT) {
@@ -39,7 +39,7 @@ extern int cp_mv_stat2(const char *fn, struct stat *fn_stat, stat_func sf)
 	return 1;
 }
 
-extern int cp_mv_stat(const char *fn, struct stat *fn_stat)
+int cp_mv_stat(const char *fn, struct stat *fn_stat)
 {
 	return cp_mv_stat2(fn, fn_stat, stat);
 }
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 @@
 #include "libbb.h"
 #include "coreutils.h"
 
-extern mode_t getopt_mk_fifo_nod(int argc, char **argv)
+mode_t getopt_mk_fifo_nod(int argc, char **argv)
 {
 	mode_t mode = 0666;
 	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 @@
 #define LN_BACKUP           8
 #define LN_SUFFIX           16
 
-extern int ln_main(int argc, char **argv)
+int ln_main(int argc, char **argv)
 {
 	int status = EXIT_SUCCESS;
 	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 @@
 #include <unistd.h>
 #include "busybox.h"
 
-extern int logname_main(int argc, char ATTRIBUTE_UNUSED **argv)
+int logname_main(int argc, char ATTRIBUTE_UNUSED **argv)
 {
 	const char *p;
 
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[] = {
 
 /*----------------------------------------------------------------------*/
 
-extern int ls_main(int argc, char **argv)
+int ls_main(int argc, char **argv)
 {
 	struct dnode **dnd;
 	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[] = {
 	{ 0, 0, 0, 0 }
 };
 
-extern int mkdir_main (int argc, char **argv)
+int mkdir_main (int argc, char **argv)
 {
 	mode_t mode = (mode_t)(-1);
 	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 @@
 #include "busybox.h"
 #include "libcoreutils/coreutils.h"
 
-extern int mkfifo_main(int argc, char **argv)
+int mkfifo_main(int argc, char **argv)
 {
 	mode_t mode;
 	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 @@
 static const char modes_chars[] = { 'p', 'c', 'u', 'b', 0, 1, 1, 2 };
 static const mode_t modes_cubp[] = { S_IFIFO, S_IFCHR, S_IFBLK };
 
-extern int mknod_main(int argc, char **argv)
+int mknod_main(int argc, char **argv)
 {
 	mode_t mode;
 	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[] = {
 
 static const char fmt[] = "cannot overwrite %sdirectory with %sdirectory";
 
-extern int mv_main(int argc, char **argv)
+int mv_main(int argc, char **argv)
 {
 	struct stat dest_stat;
 	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 @@
 #include <stdlib.h>
 #include "busybox.h"
 
-extern int pwd_main(int argc, char **argv)
+int pwd_main(int argc, char **argv)
 {
 	char *buf;
 
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 @@
 #include <unistd.h>
 #include "busybox.h"
 
-extern int rm_main(int argc, char **argv)
+int rm_main(int argc, char **argv)
 {
 	int status = 0;
 	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 @@
 #include <libgen.h>
 #include "busybox.h"
 
-extern int rmdir_main(int argc, char **argv)
+int rmdir_main(int argc, char **argv)
 {
 	int status = EXIT_SUCCESS;
 	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 @@
 #include <stdlib.h>
 #include "busybox.h"
 
-extern int seq_main(int argc, char **argv)
+int seq_main(int argc, char **argv)
 {
 	double last, first, increment, i;
 	
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[] = {
 };
 #endif
 
-extern int sleep_main(int argc, char **argv)
+int sleep_main(int argc, char **argv)
 {
 	unsigned int duration;
 
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[] = {
 };
 
 #ifndef TEST
-extern int stty_main(int argc, char **argv)
+int stty_main(int argc, char **argv)
 #else
-extern int main(int argc, char **argv)
+int main(int argc, char **argv)
 #endif
 {
 	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 @@
 #include <unistd.h>
 #include "busybox.h"
 
-extern int sync_main(int argc, char **argv)
+int sync_main(int argc, char **argv)
 {
 	bb_warn_ignoring_args(argc - 1);
 
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);
 static int is_a_group_member(gid_t gid);
 static void initialize_group_array(void);
 
-extern int test_main(int argc, char **argv)
+int test_main(int argc, char **argv)
 {
 	int res;
 
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 @@
 #include <stdlib.h>
 #include "busybox.h"
 
-extern int touch_main(int argc, char **argv)
+int touch_main(int argc, char **argv)
 {
 	int fd;
 	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)
 	return ix;
 }
 
-extern int tr_main(int argc, char **argv)
+int tr_main(int argc, char **argv)
 {
 	register unsigned char *ptr;
 	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 @@
 #include <stdlib.h>
 #include "busybox.h"
 
-extern int true_main(int argc, char **argv)
+int true_main(int argc, char **argv)
 {
 	return EXIT_SUCCESS;
 }
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 @@
 #include <unistd.h>
 #include "busybox.h"
 
-extern int tty_main(int argc, char **argv)
+int tty_main(int argc, char **argv)
 {
 	const char *s;
 	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 @@
 #include <unistd.h>
 #include "busybox.h"
 
-extern int usleep_main(int argc, char **argv)
+int usleep_main(int argc, char **argv)
 {
 	if (argc != 2) {
 		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)
 	}
 }
 
-extern int uudecode_main(int argc, char **argv)
+int uudecode_main(int argc, char **argv)
 {
 	int (*decode_fn_ptr) (FILE * src, FILE * dst);
 	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 @@
 #include <sys/wait.h>
 #include "busybox.h"
 
-extern int watch_main(int argc, char **argv)
+int watch_main(int argc, char **argv)
 {
 	const int header_len = 40;
 	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 @@
 #include <time.h>
 #include "busybox.h"
 
-extern int who_main(int argc, char **argv)
+int who_main(int argc, char **argv)
 {
     struct utmp *ut;
     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 @@
 #include <unistd.h>
 #include "busybox.h"
 
-extern int whoami_main(int argc, char **argv)
+int whoami_main(int argc, char **argv)
 {
 	if (argc > 1)
 		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 @@
 #include <stdlib.h>
 #include "busybox.h"
 
-extern int yes_main(int argc, char **argv)
+int yes_main(int argc, char **argv)
 {
 	static const char fmt_str[] = " %s";
 	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 @@
 #include <stdlib.h>
 #include "busybox.h"
 
-extern int mktemp_main(int argc, char **argv)
+int mktemp_main(int argc, char **argv)
 {
 	unsigned long flags = bb_getopt_ulflags(argc, argv, "dq");
 
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 @@
 /*	Read a block of data from stdin, write it to stdout.
  *  Activity is indicated by a '.' to stderr
  */
-extern int pipe_progress_main(int argc, char **argv)
+int pipe_progress_main(int argc, char **argv)
 {
 	RESERVE_CONFIG_BUFFER(buf, PIPE_PROGRESS_SIZE);
 	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 @@
 #include <sys/stat.h>
 #include "busybox.h"
 
-extern int which_main(int argc, char **argv)
+int which_main(int argc, char **argv)
 {
 	int status = EXIT_SUCCESS;
 	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)
 /*
  * Given a blkid device, return its name
  */
-extern const char *blkid_dev_devname(blkid_dev dev)
+const char *blkid_dev_devname(blkid_dev dev)
 {
 	return dev->bid_name;
 }
@@ -80,7 +80,7 @@ struct blkid_struct_dev_iterate {
 	struct list_head	*p;
 };
 
-extern blkid_dev_iterate blkid_dev_iterate_begin(blkid_cache cache)
+blkid_dev_iterate blkid_dev_iterate_begin(blkid_cache cache)
 {
 	blkid_dev_iterate	iter;
 
@@ -106,7 +106,7 @@ extern int blkid_dev_next(blkid_dev_iterate iter,
 	return 0;
 }
 
-extern void blkid_dev_iterate_end(blkid_dev_iterate iter)
+void blkid_dev_iterate_end(blkid_dev_iterate iter)
 {
 	if (!iter || iter->magic != DEV_ITERATE_MAGIC)
 		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 {
 	struct list_head	*p;
 };
 
-extern blkid_tag_iterate blkid_tag_iterate_begin(blkid_dev dev)
+blkid_tag_iterate blkid_tag_iterate_begin(blkid_dev dev)
 {
 	blkid_tag_iterate	iter;
 
@@ -267,7 +267,7 @@ extern int blkid_tag_next(blkid_tag_iterate iter,
 	return 0;
 }
 
-extern void blkid_tag_iterate_end(blkid_tag_iterate iter)
+void blkid_tag_iterate_end(blkid_tag_iterate iter)
 {
 	if (!iter || iter->magic != TAG_ITERATE_MAGIC)
 		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,
 		+ tbl->table[pass-1]);
 }
 
-extern void e2fsck_clear_progbar(e2fsck_t ctx)
+void e2fsck_clear_progbar(e2fsck_t ctx)
 {
 	if (!(ctx->flags & E2F_FLAG_PROG_BAR))
 		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)
 	return &rsm;
 }
 
-extern int awk_main(int argc, char **argv)
+int awk_main(int argc, char **argv)
 {
 	char *s, *s1;
 	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)
 	return(stat(filename, &statbuf));
 }
 
-extern int patch_main(int argc, char **argv)
+int patch_main(int argc, char **argv)
 {
 	int patch_level = -1;
 	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)
 	free(temp);
 }
 
-extern int sed_main(int argc, char **argv)
+int sed_main(int argc, char **argv)
 {
 	int status = EXIT_SUCCESS, opt, getpat = 1;
 
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)
 	fputs(out, stdout);
 }
 
-extern int vi_main(int argc, char **argv)
+int vi_main(int argc, char **argv)
 {
 	int c;
 	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)
 }
 
 
-extern int grep_main(int argc, char **argv)
+int grep_main(int argc, char **argv)
 {
 	FILE *file;
 	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)
 }
 #endif							/* CONFIG_FEATURE_USE_INITTAB */
 
-extern int init_main(int argc, char **argv)
+int init_main(int argc, char **argv)
 {
 	struct init_action *a;
 	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 @@
 
 #ifndef CONFIG_INIT
 const char * const bb_shutdown_format = "\r%s\n";
-extern int bb_shutdown_system(unsigned long magic)
+int bb_shutdown_system(unsigned long magic)
 {
 	int pri = LOG_KERN|LOG_NOTICE|LOG_FACMASK;
 	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 @@
 #define S_IWGRP_OR_S_IWOTH	(S_IWGRP | S_IWOTH)
 #endif
 
-extern int mesg_main(int argc, char *argv[])
+int mesg_main(int argc, char *argv[])
 {
 	struct stat sb;
 	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 @@
 #include <string.h>
 #include "busybox.h"
 
-extern int bb_echo(int ATTRIBUTE_UNUSED argc, char **argv)
+int bb_echo(int ATTRIBUTE_UNUSED argc, char **argv)
 {
 #ifndef CONFIG_FEATURE_FANCY_ECHO
 #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 @@
 #include <string.h>
 #include "libbb.h"
 
-extern char *concat_path_file(const char *path, const char *filename)
+char *concat_path_file(const char *path, const char *filename)
 {
 	char *lc;
 
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 @@
 
 #include "libbb.h"
 
-extern char *concat_subpath_file(const char *path, const char *f)
+char *concat_subpath_file(const char *path, const char *f)
 {
 	if(f && *f == '.' && (!f[1] || (f[1] == '.' && !f[2])))
 		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:
 }
 
 
-extern int bb_copyfd_size(int fd1, int fd2, const off_t size)
+int bb_copyfd_size(int fd1, int fd2, const off_t size)
 {
 	if (size) {
 		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)
 	return(0);
 }
 
-extern int bb_copyfd_eof(int fd1, int fd2)
+int bb_copyfd_eof(int fd1, int fd2)
 {
 	return(bb_full_fd_action(fd1, fd2, 0));
 }
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 @@
 
 
 /* try to open up the specified device */
-extern int device_open(const char *device, int mode)
+int device_open(const char *device, int mode)
 {
 	int m, f, fd = -1;
 
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 @@
 #include <stdlib.h>
 #include "libbb.h"
 
-extern void bb_error_msg(const char *s, ...)
+void bb_error_msg(const char *s, ...)
 {
 	va_list p;
 
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 @@
 #include <stdlib.h>
 #include "libbb.h"
 
-extern void bb_error_msg_and_die(const char *s, ...)
+void bb_error_msg_and_die(const char *s, ...)
 {
 	va_list p;
 
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 @@
  * Given any other file (or directory), find the mount table entry for its
  * filesystem.
  */
-extern struct mntent *find_mount_point(const char *name, const char *table)
+struct mntent *find_mount_point(const char *name, const char *table)
 {
 	struct stat s;
 	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 @@
  *  Returns a list of all matching PIDs
  *  It is the caller's duty to free the returned pidlist.
  */
-extern long* find_pid_by_name( const char* pidName)
+long* find_pid_by_name( const char* pidName)
 {
 	long* pidList;
 	int i=0;
@@ -42,7 +42,7 @@ extern long* find_pid_by_name( const char* pidName)
 	return pidList;
 }
 
-extern long *pidlist_reverse(long *pidList)
+long *pidlist_reverse(long *pidList)
 {
 	int i=0;
 	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 @@
 #include <stdlib.h>
 #include "libbb.h"
 
-extern char *find_block_device(char *path)
+char *find_block_device(char *path)
 {
 	DIR *dir;
 	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)
 }
 
 /* Get line, including trailing /n if any */
-extern char *bb_get_line_from_file(FILE *file)
+char *bb_get_line_from_file(FILE *file)
 {
 	int i;
 	return bb_get_chunk_from_file(file, &i);
 }
 
 /* Get line.  Remove trailing /n */
-extern char *bb_get_chomped_line_from_file(FILE *file)
+char *bb_get_chomped_line_from_file(FILE *file)
 {
 	int i;
 	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 @@
 
 #include "libbb.h"
 
-extern void bb_herror_msg(const char *s, ...)
+void bb_herror_msg(const char *s, ...)
 {
 	va_list p;
 
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 @@
 
 #include "libbb.h"
 
-extern void bb_herror_msg_and_die(const char *s, ...)
+void bb_herror_msg_and_die(const char *s, ...)
 {
 	va_list p;
 
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 @@
  * so, for example,  to check if the kernel is greater than 2.2.11:
  *     if (get_kernel_revision() <= 2*65536+2*256+11) { <stuff> }
  */
-extern int get_kernel_revision(void)
+int get_kernel_revision(void)
 {
 	struct utsname name;
 	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 @@
 
 #ifdef L_llist_add_to
 /* Add data to the start of the linked list.  */
-extern llist_t *llist_add_to(llist_t *old_head, char *new_item)
+llist_t *llist_add_to(llist_t *old_head, char *new_item)
 {
 	llist_t *new_head;
 
@@ -27,7 +27,7 @@ extern llist_t *llist_add_to(llist_t *old_head, char *new_item)
 
 #ifdef L_llist_add_to_end
 /* Add data to the end of the linked list.  */
-extern llist_t *llist_add_to_end(llist_t *list_head, char *data)
+llist_t *llist_add_to_end(llist_t *list_head, char *data)
 {
 	llist_t *new_item;
 
@@ -50,7 +50,7 @@ extern llist_t *llist_add_to_end(llist_t *list_head, char *data)
 #ifdef L_llist_free_one
 /* Free the current list element and advance to the next entry in the list.
  * Returns a pointer to the next element.  */
-extern llist_t *llist_free_one(llist_t *elm)
+llist_t *llist_free_one(llist_t *elm)
 {
 	llist_t *next = elm ? elm->link : NULL;
 #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)
 
 #ifdef L_llist_free
 /* Recursively free all elements in the linked list.  */
-extern void llist_free(llist_t *elm)
+void llist_free(llist_t *elm)
 {
 	while ((elm = llist_free_one(elm)));
 }
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)
  *	check passwords.
  */
 
-extern int obscure(const char *old, const char *newval, const struct passwd *pwdp)
+int obscure(const char *old, const char *newval, const struct passwd *pwdp)
 {
 	const char *msg = obscure_msg(old, newval, pwdp);
 
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 @@
 
 #define FILEMODEBITS    (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO)
 
-extern int bb_parse_mode(const char *s, mode_t *current_mode)
+int bb_parse_mode(const char *s, mode_t *current_mode)
 {
 	static const mode_t who_mask[] = {
 		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 @@
 #include <stdlib.h>
 #include "libbb.h"
 
-extern void bb_perror_msg(const char *s, ...)
+void bb_perror_msg(const char *s, ...)
 {
 	va_list p;
 
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 @@
 #include <stdlib.h>
 #include "libbb.h"
 
-extern void bb_perror_msg_and_die(const char *s, ...)
+void bb_perror_msg_and_die(const char *s, ...)
 {
 	va_list p;
 
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 @@
 #include <stddef.h>
 #include <libbb.h>
 
-extern void bb_perror_nomsg(void)
+void bb_perror_nomsg(void)
 {
 	/* Ignore the gcc warning about a null format string. */
 	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 @@
 #include <stddef.h>
 #include "libbb.h"
 
-extern void bb_perror_nomsg_and_die(void)
+void bb_perror_nomsg_and_die(void)
 {
 	/* Ignore the gcc warning about a null format string. */
 	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 @@
 #include <unistd.h>
 #include "libbb.h"
 
-extern void bb_xprint_and_close_file(FILE *file)
+void bb_xprint_and_close_file(FILE *file)
 {
 	bb_xfflush_stdout();
 	/* 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)
  *  exits with default error code if an error occurs
  */
 
-extern int bb_xprint_file_by_name(const char *filename)
+int bb_xprint_file_by_name(const char *filename)
 {
 	FILE *f;
 
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,
 #endif
 
 #ifdef L_bb_vprintf
-extern int bb_vprintf(const char * __restrict format, va_list arg)
+int bb_vprintf(const char * __restrict format, va_list arg)
 {
 	return bb_vfprintf(stdout, format, arg);
 }
@@ -167,7 +167,7 @@ extern int bb_fprintf(FILE * __restrict stream,
 #endif
 
 #ifdef L_bb_printf
-extern int bb_printf(const char * __restrict format, ...)
+int bb_printf(const char * __restrict format, ...)
 {
 	va_list arg;
 	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)
 }
 
 
-extern procps_status_t * procps_scan(int save_user_arg0)
+procps_status_t * procps_scan(int save_user_arg0)
 {
 	static DIR *dir;
 	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 @@
 #include "libbb.h"
 
 
-extern char *pw_encrypt(const char *clear, const char *salt)
+char *pw_encrypt(const char *clear, const char *salt)
 {
 	static char cipher[128];
 	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 @@
 #include <getopt.h>
 #include "libbb.h"
 
-extern int remove_file(const char *path, int flags)
+int remove_file(const char *path, int flags)
 {
 	struct stat path_stat;
 	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)
  * test_mode = 2 means to fail silently on missing directories
  */
 
-extern int run_parts(char **args, const unsigned char test_mode, char **env)
+int run_parts(char **args, const unsigned char test_mode, char **env)
 {
 	struct dirent **namelist = 0;
 	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 @@
 
 
 /* Like strncpy but make sure the resulting string is always 0 terminated. */
-extern char * safe_strncpy(char *dst, const char *src, size_t size)
+char * safe_strncpy(char *dst, const char *src, size_t size)
 {
 	dst[size-1] = '\0';
 	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 @@
 #include <ctype.h>
 #include "libbb.h"
 
-extern const char *bb_skip_whitespace(const char *s)
+const char *bb_skip_whitespace(const char *s)
 {
 	while (isspace(*s)) {
 		++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 @@
 
 
 #if (__GLIBC__ < 2)
-extern int vdprintf(int d, const char *format, va_list ap)
+int vdprintf(int d, const char *format, va_list ap)
 {
 	char buf[BUF_SIZE];
 	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 @@
 #include <stdlib.h>
 #include "libbb.h"
 
-extern void bb_verror_msg(const char *s, va_list p)
+void bb_verror_msg(const char *s, va_list p)
 {
 	fflush(stdout);
 	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 @@
 #include "libbb.h"
 
 
-extern void bb_vherror_msg(const char *s, va_list p)
+void bb_vherror_msg(const char *s, va_list p)
 {
 	if(s == 0)
 		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 @@
 #include <stdlib.h>
 #include "libbb.h"
 
-extern void bb_vperror_msg(const char *s, va_list p)
+void bb_vperror_msg(const char *s, va_list p)
 {
 	int err=errno;
 	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 @@
 
 #include <libbb.h>
 
-extern void bb_warn_ignoring_args(int n)
+void bb_warn_ignoring_args(int n)
 {
 	if (n) {
 		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 @@
 
 #ifndef DMALLOC
 #ifdef L_xmalloc
-extern void *xmalloc(size_t size)
+void *xmalloc(size_t size)
 {
 	void *ptr = malloc(size);
 	if (ptr == NULL && size != 0)
@@ -36,7 +36,7 @@ extern void *xmalloc(size_t size)
 #endif
 
 #ifdef L_xrealloc
-extern void *xrealloc(void *ptr, size_t size)
+void *xrealloc(void *ptr, size_t size)
 {
 	ptr = realloc(ptr, size);
 	if (ptr == NULL && size != 0)
@@ -46,7 +46,7 @@ extern void *xrealloc(void *ptr, size_t size)
 #endif
 
 #ifdef L_xcalloc
-extern void *xcalloc(size_t nmemb, size_t size)
+void *xcalloc(size_t nmemb, size_t size)
 {
 	void *ptr = calloc(nmemb, size);
 	if (ptr == NULL && nmemb != 0 && size != 0)
@@ -96,7 +96,7 @@ FILE *bb_xfopen(const char *path, const char *mode)
 #endif
 
 #ifdef L_xopen
-extern int bb_xopen(const char *pathname, int flags)
+int bb_xopen(const char *pathname, int flags)
 {
 	int ret;
 
@@ -109,7 +109,7 @@ extern int bb_xopen(const char *pathname, int flags)
 #endif
 
 #ifdef L_xread
-extern ssize_t bb_xread(int fd, void *buf, size_t count)
+ssize_t bb_xread(int fd, void *buf, size_t count)
 {
 	ssize_t size;
 
@@ -122,7 +122,7 @@ extern ssize_t bb_xread(int fd, void *buf, size_t count)
 #endif
 
 #ifdef L_xread_all
-extern void bb_xread_all(int fd, void *buf, size_t count)
+void bb_xread_all(int fd, void *buf, size_t count)
 {
 	ssize_t size;
 
@@ -138,7 +138,7 @@ extern void bb_xread_all(int fd, void *buf, size_t count)
 #endif
 
 #ifdef L_xread_char
-extern unsigned char bb_xread_char(int fd)
+unsigned char bb_xread_char(int fd)
 {
 	char tmp;
 
@@ -149,7 +149,7 @@ extern unsigned char bb_xread_char(int fd)
 #endif
 
 #ifdef L_xferror
-extern void bb_xferror(FILE *fp, const char *fn)
+void bb_xferror(FILE *fp, const char *fn)
 {
 	if (ferror(fp)) {
 		bb_error_msg_and_die("%s", fn);
@@ -158,14 +158,14 @@ extern void bb_xferror(FILE *fp, const char *fn)
 #endif
 
 #ifdef L_xferror_stdout
-extern void bb_xferror_stdout(void)
+void bb_xferror_stdout(void)
 {
 	bb_xferror(stdout, bb_msg_standard_output);
 }
 #endif
 
 #ifdef L_xfflush_stdout
-extern void bb_xfflush_stdout(void)
+void bb_xfflush_stdout(void)
 {
 	if (fflush(stdout)) {
 		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 @@
 
 #include "busybox.h"
 
-extern long bb_xgetlarg(const char *arg, int base, long lower, long upper)
+long bb_xgetlarg(const char *arg, int base, long lower, long upper)
 {
 	long result;
 	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 @@
 #include <unistd.h>
 #include "libbb.h"
 
-extern char *xreadlink(const char *path)
+char *xreadlink(const char *path)
 {
 	static const int GROWBY = 80; /* how large we will grow strings by */
 
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)
 }
 
 
-extern int login_main(int argc, char **argv)
+int login_main(int argc, char **argv)
 {
 	char tty[BUFSIZ];
 	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)
 }
 
 
-extern int passwd_main(int argc, char **argv)
+int passwd_main(int argc, char **argv)
 {
 	int amroot;
 	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)
 }
 
 
-extern int sulogin_main(int argc, char **argv)
+int sulogin_main(int argc, char **argv)
 {
 	char *cp;
 	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)
 	tcsetattr(STDIN_FILENO, TCSANOW, &oterm);
 }
 
-extern int vlock_main(int argc, char **argv)
+int vlock_main(int argc, char **argv)
 {
 	sigset_t sig;
 	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 @@
 #define CDROMEJECT                0x5309  /* Ejects the cdrom media */
 #define DEFAULT_CDROM             "/dev/cdrom"
 
-extern int eject_main(int argc, char **argv)
+int eject_main(int argc, char **argv)
 {
 	unsigned long flags;
 	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 @@
 #error struct utmp member char[] size(s) have changed!
 #endif
 
-extern int last_main(int argc, char **argv)
+int last_main(int argc, char **argv)
 {
 	struct utmp ut;
 	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)
 
 /* Licensed under the GPL v2 or later, see the file LICENSE in this tarball. */
 
-extern int makedevs_main(int argc, char **argv)
+int makedevs_main(int argc, char **argv)
 {
 	FILE *table = stdin;
 	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[] = {
 	{0, 0}
 };
 
-extern int mt_main(int argc, char **argv)
+int mt_main(int argc, char **argv)
 {
 	const char *file = "/dev/tape";
 	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)
     signal (SIGQUIT, quit_signal);
 }
 
-extern int time_main (int argc, char **argv)
+int time_main (int argc, char **argv)
 {
     int gotone;
     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)
 
 #endif
 
-extern int insmod_main( int argc, char **argv)
+int insmod_main( int argc, char **argv)
 {
 	int opt;
 	int len;
@@ -4267,7 +4267,7 @@ static const char *moderror(int err)
 	}
 }
 
-extern int insmod_ng_main( int argc, char **argv)
+int insmod_ng_main( int argc, char **argv)
 {
 	int i;
 	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;
 static const int NEW_MOD_USED_ONCE = 16;
 static const int NEW_MOD_INITIALIZING = 64;
 
-extern int lsmod_main(int argc, char **argv)
+int lsmod_main(int argc, char **argv)
 {
 	struct module_info info;
 	char *module_names, *mn, *deps, *dn;
@@ -160,7 +160,7 @@ extern int lsmod_main(int argc, char **argv)
 
 #else /* CONFIG_FEATURE_QUERY_MODULE_INTERFACE */
 
-extern int lsmod_main(int argc, char **argv)
+int lsmod_main(int argc, char **argv)
 {
 	printf("Module                  Size  Used by");
 	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 )
 
 }
 
-extern int modprobe_main(int argc, char** argv)
+int modprobe_main(int argc, char** argv)
 {
 	int rc = EXIT_SUCCESS;
 	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)
 }
 #endif
 
-extern int rmmod_main(int argc, char **argv)
+int rmmod_main(int argc, char **argv)
 {
 	int n, ret = EXIT_SUCCESS;
 	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)
 	return(NULL);
 }
 
-extern int ifupdown_main(int argc, char **argv)
+int ifupdown_main(int argc, char **argv)
 {
 	int (*cmds) (struct interface_defn_t *) = NULL;
 	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)
 	filter.oneline = _oneline;
 }
 
-extern int ipaddr_list_or_flush(int argc, char **argv, int flush)
+int ipaddr_list_or_flush(int argc, char **argv, int flush)
 {
 	static const char *const option[] = { "to", "scope", "up", "label", "dev", 0 };
 
@@ -805,7 +805,7 @@ static int ipaddr_modify(int cmd, int argc, char **argv)
 	exit(0);
 }
 
-extern int do_ipaddr(int argc, char **argv)
+int do_ipaddr(int argc, char **argv)
 {
 	static const char *const commands[] = {
 		"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)
 	return;
 }
 
-extern int ping_main(int argc, char **argv)
+int ping_main(int argc, char **argv)
 {
 	argc--;
 	argv++;
@@ -377,7 +377,7 @@ static void ping(const char *host)
 	pingstats(0);
 }
 
-extern int ping_main(int argc, char **argv)
+int ping_main(int argc, char **argv)
 {
 	char *thisarg;
 
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)
 	return;
 }
 
-extern int ping6_main(int argc, char **argv)
+int ping6_main(int argc, char **argv)
 {
 	argc--;
 	argv++;
@@ -423,7 +423,7 @@ static void ping(const char *host)
 	pingstats(0);
 }
 
-extern int ping6_main(int argc, char **argv)
+int ping6_main(int argc, char **argv)
 {
 	char *thisarg;
 
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)
 	if (G.do_termios) tcsetattr(0, TCSADRAIN, &G.termios_def);
 }
 
-extern int telnet_main(int argc, char** argv)
+int telnet_main(int argc, char** argv)
 {
 	int len;
 	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 @@
 #include <stdlib.h>
 #include "busybox.h"
 
-extern int free_main(int argc, char **argv)
+int free_main(int argc, char **argv)
 {
 	struct sysinfo info;
 	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 @@
 #define KILL 0
 #define KILLALL 1
 
-extern int kill_main(int argc, char **argv)
+int kill_main(int argc, char **argv)
 {
 	int whichApp, signo = SIGTERM;
 	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 @@
 #define omitted (0)
 #endif
 
-extern int pidof_main(int argc, char **argv)
+int pidof_main(int argc, char **argv)
 {
 	unsigned n = 0;
 	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 @@
 #include <selinux/selinux.h>  /* for is_selinux_enabled()  */
 #endif
 
-extern int ps_main(int argc, char **argv)
+int ps_main(int argc, char **argv)
 {
 	procps_status_t * p;
 	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 @@
 #define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)
 
 
-extern int uptime_main(int argc, char **argv)
+int uptime_main(int argc, char **argv)
 {
 	int updays, uphours, upminutes;
 	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)
 }
 
 #ifdef CONFIG_FEATURE_COMMAND_SAVEHISTORY
-extern void load_history ( const char *fromfile )
+void load_history ( const char *fromfile )
 {
 	FILE *fp;
 	int hi;
@@ -1225,7 +1225,7 @@ extern void load_history ( const char *fromfile )
 	cur_history = n_history = hi;
 }
 
-extern void save_history ( const char *tofile )
+void save_history ( const char *tofile )
 {
 	FILE *fp = fopen ( tofile, "w" );
 
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;
  */
 
 
-extern int msh_main(int argc, char **argv)
+int msh_main(int argc, char **argv)
 {
 	REGISTER int f;
 	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)
 #define OPT_LEVEL        1
 #define OPT_FOREGROUND   2
 
-extern int klogd_main(int argc, char **argv)
+int klogd_main(int argc, char **argv)
 {
 	unsigned long opt;
 	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)
 }
 
 
-extern int logger_main(int argc, char **argv)
+int logger_main(int argc, char **argv)
 {
 	int pri = LOG_USER | LOG_NOTICE;
 	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)
 		error_exit("semop[SMrdn]");
 }
 
-extern int logread_main(int argc, char **argv)
+int logread_main(int argc, char **argv)
 {
 	int i;
 	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)
 	}					/* for main loop */
 }
 
-extern int syslogd_main(int argc, char **argv)
+int syslogd_main(int argc, char **argv)
 {
 	int opt;
 
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)
 #ifdef STANDALONE
 int main(int argc, char **argv)
 #else
-extern int fbset_main(int argc, char **argv)
+int fbset_main(int argc, char **argv)
 #endif
 {
 	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 @@
 /* From <linux/fd.h> */
 #define FDFLUSH  _IO(2,0x4b)
 
-extern int fdflush_main(int argc, char **argv)
+int fdflush_main(int argc, char **argv)
 {
 	int fd, result;
 
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)
 }
 #endif
 
-extern int fsck_minix_main(int argc, char **argv)
+int fsck_minix_main(int argc, char **argv)
 {
 	struct termios tmp;
 	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)
 #define HWCLOCK_OPT_HCTOSYS		0x08
 #define HWCLOCK_OPT_SYSTOHC		0x10
 
-extern int hwclock_main ( int argc, char **argv )
+int hwclock_main ( int argc, char **argv )
 {
 	unsigned long opt;
 	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)
 		printf("one bad block\n");
 }
 
-extern int mkfs_minix_main(int argc, char **argv)
+int mkfs_minix_main(int argc, char **argv)
 {
 	int i=1;
 	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)
 #endif /* CONFIG_FEATURE_USE_TERMIOS */
 
 
-extern int more_main(int argc, char **argv)
+int more_main(int argc, char **argv)
 {
 	int c, lines, input = 0;
 	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)
 
 #define DO_ALL    0x01
 
-extern int swap_on_off_main(int argc, char **argv)
+int swap_on_off_main(int argc, char **argv)
 {
 	int ret;
 
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 @@
 #define OPT_IGNORED			32	// -v is ignored
 #define OPT_ALL				(ENABLE_FEATURE_UMOUNT_ALL ? 64 : 0)
 
-extern int umount_main(int argc, char **argv)
+int umount_main(int argc, char **argv)
 {
 	int doForce;
 	char path[2*PATH_MAX];
-- 
cgit v1.2.3-55-g6feb