Including <unistd.h> when using getopt(3) also makes extern int opterr, optind, optopt, optreset; and friends declared, but many utils redeclare them again.
Is there a reason for that, or can those be removed? As a harmless example, here's a diff to games. Jan Index: fortune/strfile/strfile.c =================================================================== RCS file: /cvs/src/games/fortune/strfile/strfile.c,v retrieving revision 1.29 diff -u -p -r1.29 strfile.c --- fortune/strfile/strfile.c 4 Jun 2017 13:39:25 -0000 1.29 +++ fortune/strfile/strfile.c 3 Nov 2017 17:32:52 -0000 @@ -252,8 +252,6 @@ main(int ac, char *av[]) void getargs(int argc, char *argv[]) { - extern char *optarg; - extern int optind; int ch; while ((ch = getopt(argc, argv, "c:hiorsx")) != -1) { Index: hunt/hunt/hunt.c =================================================================== RCS file: /cvs/src/games/hunt/hunt/hunt.c,v retrieving revision 1.22 diff -u -p -r1.22 hunt.c --- hunt/hunt/hunt.c 8 Apr 2017 22:50:41 -0000 1.22 +++ hunt/hunt/hunt.c 3 Nov 2017 17:32:52 -0000 @@ -85,8 +85,6 @@ int main(int ac, char **av) { int c; - extern int optind; - extern char *optarg; long enter_status; int option; struct servent *se; Index: hunt/huntd/driver.c =================================================================== RCS file: /cvs/src/games/hunt/huntd/driver.c,v retrieving revision 1.29 diff -u -p -r1.29 driver.c --- hunt/huntd/driver.c 21 Jan 2017 08:22:57 -0000 1.29 +++ hunt/huntd/driver.c 3 Nov 2017 17:32:52 -0000 @@ -80,8 +80,6 @@ main(int ac, char **av) static fd_set read_fds; static FLAG first = TRUE; static FLAG server = FALSE; - extern int optind; - extern char *optarg; extern char *__progname; int c; static struct timeval linger = { 0, 0 }; Index: robots/main.c =================================================================== RCS file: /cvs/src/games/robots/main.c,v retrieving revision 1.26 diff -u -p -r1.26 main.c --- robots/main.c 28 May 2017 21:01:13 -0000 1.26 +++ robots/main.c 3 Nov 2017 17:32:52 -0000 @@ -56,7 +56,6 @@ main(int ac, char *av[]) int score_err = 0; /* hold errno from score file open */ int ch; int ret; - extern int optind; char *home; #ifdef FANCY char *sp;