diff --git a/sbin/ifconfig/af_atalk.c b/sbin/ifconfig/af_atalk.c
index 9accc75fdc19..c50e0fd1ba65 100644
--- a/sbin/ifconfig/af_atalk.c
+++ b/sbin/ifconfig/af_atalk.c
@@ -173,7 +173,7 @@ static __constructor void
 atalk_ctor(void)
 {
 #define	N(a)	(sizeof(a) / sizeof(a[0]))
-	int i;
+	size_t i;
 
 	for (i = 0; i < N(atalk_cmds);  i++)
 		cmd_register(&atalk_cmds[i]);
diff --git a/sbin/ifconfig/af_inet.c b/sbin/ifconfig/af_inet.c
index 989cf8d76d64..2c75b01cded8 100644
--- a/sbin/ifconfig/af_inet.c
+++ b/sbin/ifconfig/af_inet.c
@@ -130,7 +130,7 @@ in_getaddr(const char *s, int which)
 		return;
 	if ((hp = gethostbyname(s)) != 0)
 		bcopy(hp->h_addr, (char *)&sin->sin_addr, 
-		    MIN(hp->h_length, sizeof(sin->sin_addr)));
+		    MIN((size_t)hp->h_length, sizeof(sin->sin_addr)));
 	else if ((np = getnetbyname(s)) != 0)
 		sin->sin_addr = inet_makeaddr(np->n_net, INADDR_ANY);
 	else
diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c
index f1871fb4996c..13789dc74943 100644
--- a/sbin/ifconfig/af_inet6.c
+++ b/sbin/ifconfig/af_inet6.c
@@ -58,12 +58,8 @@ static const char rcsid[] =
 
 static	struct in6_ifreq in6_ridreq;
 static	struct in6_aliasreq in6_addreq = 
-  { { 0 }, 
-    { 0 }, 
-    { 0 }, 
-    { 0 }, 
-    0, 
-    { 0, 0, ND6_INFINITE_LIFETIME, ND6_INFINITE_LIFETIME } };
+  { .ifra_flags = 0, 
+    .ifra_lifetime = { 0, 0, ND6_INFINITE_LIFETIME, ND6_INFINITE_LIFETIME } };
 static	int ip6lifetime;
 
 static	void in6_fillscopeid(struct sockaddr_in6 *sin6);
@@ -522,13 +518,13 @@ in6_Lopt_cb(const char *optarg __unused)
 {
 	ip6lifetime++;	/* print IPv6 address lifetime */
 }
-static struct option in6_Lopt = { "L", "[-L]", in6_Lopt_cb };
+static struct option in6_Lopt = { .opt = "L", .opt_usage = "[-L]", .cb = in6_Lopt_cb };
 
 static __constructor void
 inet6_ctor(void)
 {
 #define	N(a)	(sizeof(a) / sizeof(a[0]))
-	int i;
+	size_t i;
 
 	for (i = 0; i < N(inet6_cmds);  i++)
 		cmd_register(&inet6_cmds[i]);
diff --git a/sbin/ifconfig/ifclone.c b/sbin/ifconfig/ifclone.c
index aba974e3b86f..1ce92c840b54 100644
--- a/sbin/ifconfig/ifclone.c
+++ b/sbin/ifconfig/ifclone.c
@@ -179,13 +179,13 @@ clone_Copt_cb(const char *optarg __unused)
 	list_cloners();
 	exit(0);
 }
-static struct option clone_Copt = { "C", "[-C]", clone_Copt_cb };
+static struct option clone_Copt = { .opt = "C", .opt_usage = "[-C]", .cb = clone_Copt_cb };
 
 static __constructor void
 clone_ctor(void)
 {
 #define	N(a)	(sizeof(a) / sizeof(a[0]))
-	int i;
+	size_t i;
 
 	for (i = 0; i < N(clone_cmds);  i++)
 		cmd_register(&clone_cmds[i]);
diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c
index 17b8394e642f..b90adf0d4e2e 100644
--- a/sbin/ifconfig/ifconfig.c
+++ b/sbin/ifconfig/ifconfig.c
@@ -1053,7 +1053,7 @@ static __constructor void
 ifconfig_ctor(void)
 {
 #define	N(a)	(sizeof(a) / sizeof(a[0]))
-	int i;
+	size_t i;
 
 	for (i = 0; i < N(basic_cmds);  i++)
 		cmd_register(&basic_cmds[i]);
diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h
index cb1a46d074d9..d6f534993e77 100644
--- a/sbin/ifconfig/ifconfig.h
+++ b/sbin/ifconfig/ifconfig.h
@@ -68,12 +68,12 @@ void	callback_register(callback_func *, void *);
 #define	DECL_CMD_FUNC2(name, arg1, arg2) \
 	void name(const char *arg1, const char *arg2, int s, const struct afswtch *afp)
 
-#define	DEF_CMD(name, param, func)	{ name, param, { .c_func = func } }
-#define	DEF_CMD_ARG(name, func)		{ name, NEXTARG, { .c_func = func } }
-#define	DEF_CMD_OPTARG(name, func)	{ name, OPTARG, { .c_func = func } }
-#define	DEF_CMD_ARG2(name, func)	{ name, NEXTARG2, { .c_func2 = func } }
-#define	DEF_CLONE_CMD(name, param, func) { name, param, { .c_func = func }, 1 }
-#define	DEF_CLONE_CMD_ARG(name, func)	{ name, NEXTARG, { .c_func = func }, 1 }
+#define	DEF_CMD(name, param, func)	{ name, param, { .c_func = func }, 0, NULL }
+#define	DEF_CMD_ARG(name, func)		{ name, NEXTARG, { .c_func = func }, 0, NULL }
+#define	DEF_CMD_OPTARG(name, func)	{ name, OPTARG, { .c_func = func }, 0, NULL }
+#define	DEF_CMD_ARG2(name, func)	{ name, NEXTARG2, { .c_func2 = func }, 0, NULL }
+#define	DEF_CLONE_CMD(name, param, func) { name, param, { .c_func = func }, 1, NULL }
+#define	DEF_CLONE_CMD_ARG(name, func)	{ name, NEXTARG, { .c_func = func }, 1, NULL }
 
 struct ifaddrs;
 struct addrinfo;
diff --git a/sbin/ifconfig/ifgif.c b/sbin/ifconfig/ifgif.c
index 92ee4c823e71..f9f3524e98e1 100644
--- a/sbin/ifconfig/ifgif.c
+++ b/sbin/ifconfig/ifgif.c
@@ -66,7 +66,7 @@ gif_status(int s)
 {
 	int opts;
 	int nopts = 0;
-	int i;
+	size_t i;
 
 	ifr.ifr_data = (caddr_t)&opts;
 	if (ioctl(s, GIFGOPTS, &ifr) == -1)
@@ -123,7 +123,7 @@ static __constructor void
 gif_ctor(void)
 {
 #define	N(a)	(sizeof(a) / sizeof(a[0]))
-	int i;
+	size_t i;
 
 	for (i = 0; i < N(gif_cmds); i++)
 		cmd_register(&gif_cmds[i]);
diff --git a/sbin/ifconfig/ifgre.c b/sbin/ifconfig/ifgre.c
index 818340bb7249..8bf7ede1989a 100644
--- a/sbin/ifconfig/ifgre.c
+++ b/sbin/ifconfig/ifgre.c
@@ -89,7 +89,7 @@ static __constructor void
 gre_ctor(void)
 {
 #define	N(a)	(sizeof(a) / sizeof(a[0]))
-	int i;
+	size_t i;
 
 	for (i = 0; i < N(gre_cmds);  i++)
 		cmd_register(&gre_cmds[i]);
diff --git a/sbin/ifconfig/ifmac.c b/sbin/ifconfig/ifmac.c
index bb021060ea44..d7e1e5b2aaef 100644
--- a/sbin/ifconfig/ifmac.c
+++ b/sbin/ifconfig/ifmac.c
@@ -112,7 +112,7 @@ static __constructor void
 mac_ctor(void)
 {
 #define	N(a)	(sizeof(a) / sizeof(a[0]))
-	int i;
+	size_t i;
 
 	for (i = 0; i < N(mac_cmds);  i++)
 		cmd_register(&mac_cmds[i]);
diff --git a/sbin/ifconfig/ifmedia.c b/sbin/ifconfig/ifmedia.c
index 04e2222e64bb..d89f3eb61155 100644
--- a/sbin/ifconfig/ifmedia.c
+++ b/sbin/ifconfig/ifmedia.c
@@ -330,7 +330,7 @@ setmediainst(const char *val, int d, int s, const struct afswtch *afp)
 	ifmr = ifmedia_getstate(s);
 
 	inst = atoi(val);
-	if (inst < 0 || inst > IFM_INST_MAX)
+	if (inst < 0 || inst > (int)IFM_INST_MAX)
 		errx(1, "invalid media instance: %s", val);
 
 	strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
@@ -822,7 +822,7 @@ static __constructor void
 ifmedia_ctor(void)
 {
 #define	N(a)	(sizeof(a) / sizeof(a[0]))
-	int i;
+	size_t i;
 
 	for (i = 0; i < N(media_cmds);  i++)
 		cmd_register(&media_cmds[i]);
diff --git a/sbin/ifconfig/ifvlan.c b/sbin/ifconfig/ifvlan.c
index 0f65846980fb..c59cac11e54d 100644
--- a/sbin/ifconfig/ifvlan.c
+++ b/sbin/ifconfig/ifvlan.c
@@ -192,7 +192,7 @@ static __constructor void
 vlan_ctor(void)
 {
 #define	N(a)	(sizeof(a) / sizeof(a[0]))
-	int i;
+	size_t i;
 
 	for (i = 0; i < N(vlan_cmds);  i++)
 		cmd_register(&vlan_cmds[i]);