extern char *optarg is already declared in unistd.h This is the only occurence in src/sbin and src/bin; others will follow in separate mails.
Jan Index: bioctl.c =================================================================== RCS file: /cvs/src/sbin/bioctl/bioctl.c,v retrieving revision 1.139 diff -u -p -r1.139 bioctl.c --- bioctl.c 21 Sep 2016 17:50:05 -0000 1.139 +++ bioctl.c 19 Oct 2016 21:43:43 -0000 @@ -59,7 +59,7 @@ struct timing { int start; }; -void usage(void); +static void __dead usage(void); const char *str2locator(const char *, struct locator *); const char *str2patrol(const char *, struct timing *); void bio_status(struct bio_status *); @@ -100,7 +100,6 @@ int main(int argc, char *argv[]) { struct bio_locate bl; - extern char *optarg; u_int64_t func = 0; char *devicename = NULL; char *realname = NULL, *al_arg = NULL; @@ -273,7 +272,7 @@ main(int argc, char *argv[]) return (0); } -void +static void __dead usage(void) { extern char *__progname;