i cant remember why i was looking at this, but strtoll annoys me. ok?
Index: main.c =================================================================== RCS file: /cvs/src/usr.bin/make/main.c,v retrieving revision 1.119 diff -u -p -r1.119 main.c --- main.c 4 Jan 2016 10:59:23 -0000 1.119 +++ main.c 19 Apr 2017 01:39:22 -0000 @@ -310,14 +310,14 @@ MainParseArgs(int argc, char **argv) Lst_AtEnd(&makefiles, optarg); break; case 'j': { - char *endptr; + const char *errstr; forceJobs = true; - maxJobs = strtol(optarg, &endptr, 0); - if (endptr == optarg) { + maxJobs = strtonum(optarg, 1, INT_MAX, &errstr); + if (errstr != NULL) { fprintf(stderr, - "make: illegal argument to -j option -- %s -- not a number\n", - optarg); + "make: illegal argument to -j option" + " -- %s -- %s\n", optarg, errstr); usage(); } record_option(c, optarg);