Not sure if such changes which diverge from upstream are wanted, but here it is.
Index: less.h =================================================================== RCS file: /cvs/src/usr.bin/less/less.h,v retrieving revision 1.11 diff -u -p -r1.11 less.h --- less.h 5 Nov 2015 22:18:27 -0000 1.11 +++ less.h 5 Nov 2015 23:14:31 -0000 @@ -32,7 +32,6 @@ #include <limits.h> #include <stdlib.h> #include <string.h> -#include <libgen.h> #include <signal.h> /* Index: main.c =================================================================== RCS file: /cvs/src/usr.bin/less/main.c,v retrieving revision 1.18 diff -u -p -r1.18 main.c --- main.c 5 Nov 2015 22:18:27 -0000 1.18 +++ main.c 5 Nov 2015 23:14:31 -0000 @@ -15,7 +15,6 @@ * Entry point, initialization, miscellaneous routines. */ -#include <libgen.h> #include <stdarg.h> #include <sys/types.h> #include "less.h" @@ -31,7 +30,7 @@ off_t start_attnpos = -1; off_t end_attnpos = -1; int wscroll; -static char *progname; +extern char *__progname; int quitting; int secure; @@ -68,7 +67,6 @@ main(int argc, char *argv[]) IFILE ifile; char *s; - progname = basename(argv[0]); argv++; argc--; @@ -77,8 +75,8 @@ main(int argc, char *argv[]) * act like LESS_IS_MORE is set. We have to set this as early * as possible for POSIX. */ - if ((strcmp(progname, "more") == 0) || - (strcmp(progname, "page") == 0)) { + if ((strcmp(__progname, "more") == 0) || + (strcmp(__progname, "page") == 0)) { less_is_more = 1; } else { s = lgetenv("LESS_IS_MORE");