Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Sep 2002 06:29:10 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Mark Murray <mark@grondar.za>
Cc:        arch@FreeBSD.ORG
Subject:   Re: More lint work for share/mk/ (review, please)
Message-ID:  <20020920054221.E2677-100000@gamplex.bde.org>
In-Reply-To: <200209191559.g8JFx27s001093@grimreaper.grondar.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 19 Sep 2002, Mark Murray wrote:

> I've been running the attached patches for a while now, and they
> allow me to complete make worlds with a commercial lint, a ports
> lint and freebsd "base" lint.
> ...
> They also allow parts of the tree to be "notlinted". The mechanism
> for this may look clunky, and I'll listen to folks who feel that it
> needs to be done differently. There are two knobs; WANT_LINT, which
> is a make.conf thing, and turns on overall linting. The other is
> NOLINT, and this is supposed to be put into individual Makefiles
> to kill copious lint output from code out of our control (like
> GNU stuff, other contrib/ code and so on).

Wouldn't `.undef WANT_LINT' in individual Makefiles be better than
another knob?

> ...
% Index: bsd.prog.mk
% ===================================================================
% RCS file: /home/ncvs/src/share/mk/bsd.prog.mk,v
% retrieving revision 1.127
% diff -u -d -r1.127 bsd.prog.mk
% --- bsd.prog.mk	17 Sep 2002 01:48:53 -0000	1.127
% +++ bsd.prog.mk	17 Sep 2002 08:33:51 -0000
% ....
% @@ -157,9 +157,9 @@
%  .endif
%
%  .if !target(lint)
% -lint: ${SRCS}
% +lint: ${SRCS:M*.c}
%  .if defined(PROG)
% -	${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} | more 2>&1
% +	${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}

I wonder what this pipeline is for.  I once thought that it was to combine
stdout with stderr to work around the bug that lint prints some messages
on stderr, but it is wrong for that -- the correct way to combine stdin
with stderr is "2>&1" before any pipe.

%  .endif
%  .endif
%
% Index: bsd.sys.mk
% ===================================================================
% RCS file: /home/ncvs/src/share/mk/bsd.sys.mk,v
% retrieving revision 1.10
% diff -u -d -r1.10 bsd.sys.mk
% --- bsd.sys.mk	7 Jul 2002 18:47:52 -0000	1.10
% +++ bsd.sys.mk	12 Sep 2002 20:54:10 -0000
% @@ -29,7 +29,7 @@
%  .  endif
%  # BDECFLAGS
%  .  if ${WARNS} > 5
% -CFLAGS		+=	-ansi -pedantic -Wbad-function-cast -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
% +CFLAGS		+=	-ansi -pedantic -Wbad-function-cast -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-long-long
%  .  endif
%  .  if ${WARNS} > 1 && ${WARNS} < 5
%  # XXX Delete -Wuninitialized by default for now -- the compiler doesn't

No thanks.  This breaks gcc's warning.  -ansi means C90 (-std=c89), and
this standard doesn't have long long.  Of course, programs not written in
C90 can't be compiled with this warning level.

% Index: sys.mk
% ===================================================================
% RCS file: /home/ncvs/src/share/mk/sys.mk,v
% retrieving revision 1.63
% diff -u -d -r1.63 sys.mk
% --- sys.mk	17 Sep 2002 01:48:54 -0000	1.63
% +++ sys.mk	17 Sep 2002 08:33:52 -0000
% @@ -132,6 +132,14 @@
%
%  # DOUBLE SUFFIX RULES
%
% +.c.ln:
% +	${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \
% +	    touch ${.TARGET}
% +
% +.cc.ln .C.ln .cpp.ln .cxx.ln:
% +	${LINT} ${LINTOBJFLAGS} ${CXXFLAGS:M-[DIU]*} ${.IMPSRC} || \
% +	    touch ${.TARGET}
% +
%  .c.o:
%  	${CC} ${CFLAGS} -c ${.IMPSRC}
%

Non-POSIX rules shouldn't be duplicated in the POSIX section.

Bruce


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020920054221.E2677-100000>