diff --git a/runit/chpst.c b/runit/chpst.c
index b306974..fcac8ee 100644
--- a/runit/chpst.c
+++ b/runit/chpst.c
@@ -290,7 +290,7 @@
 static void softlimit(int, char **) ATTRIBUTE_NORETURN;
 
 int chpst_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int chpst_main(int argc, char **argv)
+int chpst_main(int argc ATTRIBUTE_UNUSED, char **argv)
 {
 	INIT_G();
 
@@ -349,7 +349,7 @@
 	bb_perror_msg_and_die("exec %s", argv[0]);
 }
 
-static void setuidgid(int argc, char **argv)
+static void setuidgid(int argc ATTRIBUTE_UNUSED, char **argv)
 {
 	const char *account;
 
@@ -361,7 +361,7 @@
 	bb_perror_msg_and_die("exec %s", argv[0]);
 }
 
-static void envuidgid(int argc, char **argv)
+static void envuidgid(int argc ATTRIBUTE_UNUSED, char **argv)
 {
 	const char *account;
 
@@ -373,7 +373,7 @@
 	bb_perror_msg_and_die("exec %s", argv[0]);
 }
 
-static void envdir(int argc, char **argv)
+static void envdir(int argc ATTRIBUTE_UNUSED, char **argv)
 {
 	const char *dir;
 
@@ -385,7 +385,7 @@
 	bb_perror_msg_and_die("exec %s", argv[0]);
 }
 
-static void softlimit(int argc, char **argv)
+static void softlimit(int argc ATTRIBUTE_UNUSED, char **argv)
 {
 	char *a,*c,*d,*f,*l,*m,*o,*p,*r,*s,*t;
 	getopt32(argv, "+a:c:d:f:l:m:o:p:r:s:t:",
diff --git a/runit/runsv.c b/runit/runsv.c
index 5d4e158..0da03e6 100644
--- a/runit/runsv.c
+++ b/runit/runsv.c
@@ -128,12 +128,12 @@
 	bb_perror_msg("%s: warning: cannot %s", dir, m);
 }
 
-static void s_child(int sig_no)
+static void s_child(int sig_no ATTRIBUTE_UNUSED)
 {
 	write(selfpipe.wr, "", 1);
 }
 
-static void s_term(int sig_no)
+static void s_term(int sig_no ATTRIBUTE_UNUSED)
 {
 	sigterm = 1;
 	write(selfpipe.wr, "", 1); /* XXX */
@@ -432,7 +432,7 @@
 }
 
 int runsv_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int runsv_main(int argc, char **argv)
+int runsv_main(int argc ATTRIBUTE_UNUSED, char **argv)
 {
 	struct stat s;
 	int fd;
diff --git a/runit/runsvdir.c b/runit/runsvdir.c
index 0ab672e..bca5c90 100644
--- a/runit/runsvdir.c
+++ b/runit/runsvdir.c
@@ -72,11 +72,11 @@
 	warn3x(m1, "", "");
 }
 
-static void s_term(int sig_no)
+static void s_term(int sig_no ATTRIBUTE_UNUSED)
 {
 	exitsoon = 1;
 }
-static void s_hangup(int sig_no)
+static void s_hangup(int sig_no ATTRIBUTE_UNUSED)
 {
 	exitsoon = 2;
 }
@@ -207,7 +207,7 @@
 }
 
 int runsvdir_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int runsvdir_main(int argc, char **argv)
+int runsvdir_main(int argc ATTRIBUTE_UNUSED, char **argv)
 {
 	struct stat s;
 	dev_t last_dev = last_dev; /* for gcc */
diff --git a/runit/sv.c b/runit/sv.c
index 141f7a8..45d5572 100644
--- a/runit/sv.c
+++ b/runit/sv.c
@@ -293,7 +293,7 @@
 	return pid ? 1 : 2;
 }
 
-static int status(const char *unused)
+static int status(const char *unused ATTRIBUTE_UNUSED)
 {
 	int r;
 
diff --git a/runit/svlogd.c b/runit/svlogd.c
index c69cb54..4458bd7 100644
--- a/runit/svlogd.c
+++ b/runit/svlogd.c
@@ -783,14 +783,14 @@
 	return i;
 }
 
-static void sig_term_handler(int sig_no)
+static void sig_term_handler(int sig_no ATTRIBUTE_UNUSED)
 {
 	if (verbose)
 		bb_error_msg(INFO"sig%s received", "term");
 	exitasap = 1;
 }
 
-static void sig_child_handler(int sig_no)
+static void sig_child_handler(int sig_no ATTRIBUTE_UNUSED)
 {
 	int pid, l;
 
@@ -807,14 +807,14 @@
 	}
 }
 
-static void sig_alarm_handler(int sig_no)
+static void sig_alarm_handler(int sig_no ATTRIBUTE_UNUSED)
 {
 	if (verbose)
 		bb_error_msg(INFO"sig%s received", "alarm");
 	rotateasap = 1;
 }
 
-static void sig_hangup_handler(int sig_no)
+static void sig_hangup_handler(int sig_no ATTRIBUTE_UNUSED)
 {
 	if (verbose)
 		bb_error_msg(INFO"sig%s received", "hangup");
