svn commit: r325954 - in head: . share/mk sys/conf usr.sbin/config
Warner Losh
imp at bsdimp.com
Sat Nov 18 05:48:46 UTC 2017
On Fri, Nov 17, 2017 at 6:34 PM, Rodney W. Grimes <
freebsd at pdx.rh.cn85.dnsmgr.net> wrote:
> [ Charset UTF-8 unsupported, converting... ]
> > Kib@ posted to arch that we were removing it, nobody objected, we
> removed
> > it. If it was a working feature that might have a few users, that's one
> > thing. But I don't think make lint has actually worked in at least a
> decade.
>
> Thats a sad state of affairs.
Indeed.
> When I try it today, I get dozens of warnings, and several syntax errors:
> >
> > types.h(289): syntax error [249]
> > nvme.h(79): syntax error [249]
> > nvme.h(105): syntax error [249]
> > nvme.h(137): syntax error [249]
> > nvme.h(160): syntax error [249]
> > nvme.h(160): cannot recover from previous errors [224]
> >
> > since it flags all c99 and newer usages as syntax errors. We've been
> using
> > c99 for the kernel since about 8.x, and in the base longer than that.
> xlint
> > hasn't been useful since we started doing this. The types.h change went
> in:
> > c217b5c12e71 ( mdf 2011-12-12 18:44:17 +0000 289)typedef _Bool
> bool;
> > which as far as I can make out was between 8.x being branched and 9.x
> being
> > branched. This feature has therefore been broken for 3 major releases
> > without any announcement, or even any bug reports coming in. Not exactly
> a
> > feature that has an audience that needs to be informed of anything...
> While
> > I generally agree one should try to follow proper deprecation process,
> this
> > has been de-facto removed from the source tree for at least 6 years, and
> > likely broken a lot longer than that. At most this deserves a one-liner
> in
> > the release notes. At most.
> >
> > So is this about my forgetting to include a "Release Notes: Yes" line in
> > the commit, or something larger?
>
> Something larger. Just because the src tree use of lint is failing
> does not meant that someone out there is not using lint in some
> other capacity. The depreication policy is there to notify them
> that lint well be removed as a program in the next release.
>
Without a working sys/types.h, nothing non-trivial will work.
> Just because FreeBSD's internal use of lint is broken should in
> no way relieve us of that obligation and stated policy.
>
The policy exists to help our users. I'm under no obligation to blindly
follow a policy that produces no benefit.
> People seem to be axing stuff without following this policy,
> and without even bothering to do a release notes Y.
Lint is totally totally broken. It's a rotting corpse that needs to be just
gone. Since it has been totally broken for several major releases, I see no
benefit from doing anything more than moving forward with removal of the
parts that died years ago. Were this a feature that was still working, or
even barely working, I might feel differently. But even if lint was still
working, it is no longer relevant, and hasn't been in a very long time.
Taken together, I fail to see any value in doing more than removing it.
Warner
> > Warner
> >
> > On Fri, Nov 17, 2017 at 11:31 AM, Rodney W. Grimes <
> > freebsd at pdx.rh.cn85.dnsmgr.net> wrote:
> >
> > > TOP post,sorry....
> > >
> > >
> > > Someone needs to follow up with proper deprication procedures on lint.
> > >
> > >
> > > > Author: imp
> > > > Date: Fri Nov 17 18:16:46 2017
> > > > New Revision: 325954
> > > > URL: https://svnweb.freebsd.org/changeset/base/325954
> > > >
> > > > Log:
> > > > Remove build system support for lint.
> > > >
> > > > Differential Revision: https://reviews.freebsd.org/D13124
> > > >
> > > > Modified:
> > > > head/Makefile
> > > > head/share/mk/bsd.README
> > > > head/share/mk/bsd.lib.mk
> > > > head/share/mk/bsd.own.mk
> > > > head/share/mk/bsd.prog.mk
> > > > head/share/mk/bsd.subdir.mk
> > > > head/share/mk/bsd.suffixes.mk
> > > > head/share/mk/sys.mk
> > > > head/sys/conf/kern.mk
> > > > head/sys/conf/kern.post.mk
> > > > head/sys/conf/kern.pre.mk
> > > > head/sys/conf/kmod.mk
> > > > head/usr.sbin/config/mkmakefile.c
> > > >
> > > > Modified: head/Makefile
> > > > ============================================================
> > > ==================
> > > > --- head/Makefile Fri Nov 17 18:00:52 2017 (r325953)
> > > > +++ head/Makefile Fri Nov 17 18:16:46 2017 (r325954)
> > > > @@ -129,7 +129,7 @@ TGTS= all all-man buildenv buildenvvars
> > > buildkernel bu
> > > > everything hier hierarchy install installcheck installkernel \
> > > > installkernel.debug packagekernel packageworld \
> > > > reinstallkernel reinstallkernel.debug \
> > > > - installworld kernel-toolchain libraries lint maninstall \
> > > > + installworld kernel-toolchain libraries maninstall \
> > > > obj objlink showconfig tags toolchain update \
> > > > _worldtmp _legacy _bootstrap-tools _cleanobj _obj \
> > > > _build-tools _build-metadata _cross-tools _includes _libraries
> \
> > > >
> > > > Modified: head/share/mk/bsd.README
> > > > ============================================================
> > > ==================
> > > > --- head/share/mk/bsd.README Fri Nov 17 18:00:52 2017
> (r325953)
> > > > +++ head/share/mk/bsd.README Fri Nov 17 18:16:46 2017
> (r325954)
> > > > @@ -250,8 +250,6 @@ It has seven targets:
> > > > beforeinstall and afterinstall may also be used to
> cause
> > > > actions immediately before and after the install target
> > > > is executed.
> > > > - lint:
> > > > - run lint on the source files
> > > > tags:
> > > > create a tags file for the source files.
> > > >
> > > > @@ -488,18 +486,17 @@ ${MOD}_oid.h A header which programmatically
> > > describes
> > > >
> > > > The include file <bsd.subdir.mk> contains the default targets for
> > > building
> > > > subdirectories. It has the same seven targets as <bsd.prog.mk>:
> all,
> > > clean,
> > > > -cleandir, depend, install, lint, and tags. For all of the
> directories
> > > > -listed in the variable SUBDIRS, the specified directory will be
> visited
> > > > -and the target made. There is also a default target which allows
> the
> > > > -command "make subdir" where subdir is any directory listed in the
> > > variable
> > > > -SUBDIRS.
> > > > +cleandir, depend, install, and tags. For all of the directories
> listed
> > > in the
> > > > +variable SUBDIRS, the specified directory will be visited and the
> > > target made.
> > > > +There is also a default target which allows the command "make
> subdir"
> > > where
> > > > +subdir is any directory listed in the variable SUBDIRS.
> > > >
> > > > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> > > =-=-=-=-=-=-=
> > > >
> > > > -The include file <bsd.lib.mk> has support for building libraries.
> It
> > > has
> > > > -the same seven targets as <bsd.prog.mk>: all, clean, cleandir,
> depend,
> > > > -install, lint, and tags. It has a limited number of suffixes,
> > > consistent
> > > > -with the current needs of the BSD tree.
> > > > +The include file <bsd.lib.mk> has support for building libraries.
> It
> > > has the
> > > > +same seven targets as <bsd.prog.mk>: all, clean, cleandir, depend,
> > > install, and
> > > > +tags. It has a limited number of suffixes, consistent with the
> current
> > > needs of
> > > > +the BSD tree.
> > > >
> > > > It sets/uses the following variables:
> > > >
> > > > @@ -530,8 +527,6 @@ LIB_CXX The name of the library to
> build.
> > > It also cau
> > > > will be built. NO_PIC can be set to only build a
> static
> > > > library.
> > > >
> > > > -LINTLIBDIR Target directory for lint libraries.
> > > > -
> > > > MAN The manual pages to be installed. See bsd.man.mk for
> more
> > > > details.
> > > >
> > > > @@ -588,8 +583,6 @@ It has seven targets:
> > > > targets beforeinstall and afterinstall may also be
> used
> > > > to cause actions immediately before and after the
> > > > install target is executed.
> > > > - lint:
> > > > - run lint on the source files.
> > > > tags:
> > > > create a tags file for the source files.
> > > >
> > > >
> > > > Modified: head/share/mk/bsd.lib.mk
> > > > ============================================================
> > > ==================
> > > > --- head/share/mk/bsd.lib.mk Fri Nov 17 18:00:52 2017
> (r325953)
> > > > +++ head/share/mk/bsd.lib.mk Fri Nov 17 18:16:46 2017
> (r325954)
> > > > @@ -285,18 +285,6 @@ lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS}
> > > > ${RANLIB} ${RANLIBFLAGS} ${.TARGET}
> > > > .endif
> > > >
> > > > -.if defined(WANT_LINT) && !defined(NO_LINT) && defined(LIB) &&
> > > !empty(LIB)
> > > > -LINTLIB= llib-l${LIB}.ln
> > > > -_LIBS+= ${LINTLIB}
> > > > -LINTOBJS+= ${SRCS:M*.c:.c=.ln}
> > > > -CLEANFILES+= ${LINTOBJS}
> > > > -
> > > > -${LINTLIB}: ${LINTOBJS}
> > > > - @${ECHO} building lint library ${.TARGET}
> > > > - @rm -f ${.TARGET}
> > > > - ${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}
> > > > -.endif
> > > > -
> > > > .endif # !defined(INTERNALLIB)
> > > >
> > > > .if defined(_SKIP_BUILD)
> > > > @@ -403,10 +391,6 @@ _libinstall:
> > > > ${INSTALL} ${TAG_ARGS:D${TAG_ARGS},development} -o ${LIBOWN}
> -g
> > > ${LIBGRP} -m ${LIBMODE} \
> > > > ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${_LIBDIR}/
> > > > .endif
> > > > -.if defined(WANT_LINT) && !defined(NO_LINT) && defined(LIB) &&
> > > !empty(LIB)
> > > > - ${INSTALL} ${TAG_ARGS:D${TAG_ARGS},development} -o ${LIBOWN}
> -g
> > > ${LIBGRP} -m ${LIBMODE} \
> > > > - ${_INSTALLFLAGS} ${LINTLIB} ${DESTDIR}${LINTLIBDIR}/
> > > > -.endif
> > > > .endif # !defined(INTERNALLIB)
> > > >
> > > > .if !defined(LIBRARIES_ONLY)
> > > > @@ -423,11 +407,6 @@ realinstall: maninstall
> > > > .ORDER: beforeinstall maninstall
> > > > .endif
> > > >
> > > > -.endif
> > > > -
> > > > -.if !target(lint)
> > > > -lint: ${SRCS:M*.c}
> > > > - ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}
> > > > .endif
> > > >
> > > > .if ${MK_MAN} != "no" && !defined(LIBRARIES_ONLY)
> > > >
> > > > Modified: head/share/mk/bsd.own.mk
> > > > ============================================================
> > > ==================
> > > > --- head/share/mk/bsd.own.mk Fri Nov 17 18:00:52 2017
> (r325953)
> > > > +++ head/share/mk/bsd.own.mk Fri Nov 17 18:16:46 2017
> (r325954)
> > > > @@ -32,8 +32,6 @@
> > > > #
> > > > # LIBEXECDIR Base path for system daemons and utilities.
> [/usr/libexec]
> > > > #
> > > > -# LINTLIBDIR Base path for lint libraries. [/usr/libdata/lint]
> > > > -#
> > > > # SHLIBDIR Base path for shared libraries. [${LIBDIR}]
> > > > #
> > > > # LIBOWN Library owner. [${BINOWN}]
> > > > @@ -162,7 +160,6 @@ LIBDIR?= ${LIBDIR_BASE}
> > > > LIBCOMPATDIR?= /usr/lib/compat
> > > > LIBDATADIR?= /usr/libdata
> > > > LIBEXECDIR?= /usr/libexec
> > > > -LINTLIBDIR?= /usr/libdata/lint
> > > > SHLIBDIR?= ${LIBDIR}
> > > > LIBOWN?= ${BINOWN}
> > > > LIBGRP?= ${BINGRP}
> > > >
> > > > Modified: head/share/mk/bsd.prog.mk
> > > > ============================================================
> > > ==================
> > > > --- head/share/mk/bsd.prog.mk Fri Nov 17 18:00:52 2017
> (r325953)
> > > > +++ head/share/mk/bsd.prog.mk Fri Nov 17 18:16:46 2017
> (r325954)
> > > > @@ -294,13 +294,6 @@ realinstall: maninstall
> > > >
> > > > .endif # !target(install)
> > > >
> > > > -.if !target(lint)
> > > > -lint: ${SRCS:M*.c}
> > > > -.if defined(PROG)
> > > > - ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}
> > > > -.endif
> > > > -.endif
> > > > -
> > > > .if ${MK_MAN} != "no"
> > > > .include <bsd.man.mk>
> > > > .endif
> > > >
> > > > Modified: head/share/mk/bsd.subdir.mk
> > > > ============================================================
> > > ==================
> > > > --- head/share/mk/bsd.subdir.mk Fri Nov 17 18:00:52 2017
> > > (r325953)
> > > > +++ head/share/mk/bsd.subdir.mk Fri Nov 17 18:16:46 2017
> > > (r325954)
> > > > @@ -46,7 +46,7 @@ SUBDIR_TARGETS+= \
> > > > all all-man analyze buildconfig buildfiles
> buildincludes \
> > > > checkdpadd clean cleandepend cleandir cleanilinks \
> > > > cleanobj depend distribute files includes
> installconfig \
> > > > - installfiles installincludes print-dir realinstall
> lint \
> > > > + installfiles installincludes print-dir realinstall \
> > > > maninstall manlint ${_obj} objlink tags \
> > > >
> > > > # Described above.
> > > >
> > > > Modified: head/share/mk/bsd.suffixes.mk
> > > > ============================================================
> > > ==================
> > > > --- head/share/mk/bsd.suffixes.mk Fri Nov 17 18:00:52 2017
> > > (r325953)
> > > > +++ head/share/mk/bsd.suffixes.mk Fri Nov 17 18:16:46 2017
> > > (r325954)
> > > > @@ -4,14 +4,6 @@
> > > > cp -f ${.IMPSRC} ${.TARGET}
> > > > chmod a+x ${.TARGET}
> > > >
> > > > -.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:
> > > > ${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
> > > > ${CTFCONVERT_CMD}
> > > >
> > > > Modified: head/share/mk/sys.mk
> > > > ============================================================
> > > ==================
> > > > --- head/share/mk/sys.mk Fri Nov 17 18:00:52 2017
> (r325953)
> > > > +++ head/share/mk/sys.mk Fri Nov 17 18:16:46 2017
> (r325954)
> > > > @@ -142,7 +142,7 @@ NO_META_IGNORE_HOST_HEADERS= 1
> > > > .if defined(%POSIX)
> > > > .SUFFIXES: .o .c .y .l .a .sh .f
> > > > .else
> > > > -.SUFFIXES: .out .a .ln .o .bco .llo .c .cc .cpp .cxx .C .m .F .f
> .e
> > > .r .y .l .S .asm .s .cl .p .h .sh
> > > > +.SUFFIXES: .out .a .o .bco .llo .c .cc .cpp .cxx .C .m .F .f .e
> .r .y
> > > .l .S .asm .s .cl .p .h .sh
> > > > .endif
> > > >
> > > > AR ?= ar
> > > > @@ -244,13 +244,6 @@ LFLAGS ?=
> > > > LD ?= ld
> > > > LDFLAGS ?=
> > > > _LDFLAGS = ${LDFLAGS:S/-Wl,//g:N-mabi=*:N-fuse-ld=*}
> > > > -
> > > > -LINT ?= lint
> > > > -LINTFLAGS ?= -cghapbx
> > > > -LINTKERNFLAGS ?= ${LINTFLAGS}
> > > > -LINTOBJFLAGS ?= -cghapbxu -i
> > > > -LINTOBJKERNFLAGS?= ${LINTOBJFLAGS}
> > > > -LINTLIBFLAGS ?= -cghapbxu -C ${LIB}
> > > >
> > > > MAKE ?= make
> > > >
> > > >
> > > > Modified: head/sys/conf/kern.mk
> > > > ============================================================
> > > ==================
> > > > --- head/sys/conf/kern.mk Fri Nov 17 18:00:52 2017
> (r325953)
> > > > +++ head/sys/conf/kern.mk Fri Nov 17 18:16:46 2017
> (r325954)
> > > > @@ -228,7 +228,7 @@ PHONY_NOTMAIN = afterdepend afterinstall all
> > > beforedep
> > > > beforelinking build build-tools buildfiles
> buildincludes \
> > > > checkdpadd clean cleandepend cleandir cleanobj
> configure \
> > > > depend distclean distribute exe \
> > > > - html includes install installfiles installincludes
> lint \
> > > > + html includes install installfiles installincludes \
> > > > obj objlink objs objwarn \
> > > > realinstall regress \
> > > > tags whereobj
> > > >
> > > > Modified: head/sys/conf/kern.post.mk
> > > > ============================================================
> > > ==================
> > > > --- head/sys/conf/kern.post.mk Fri Nov 17 18:00:52 2017
> > > (r325953)
> > > > +++ head/sys/conf/kern.post.mk Fri Nov 17 18:16:46 2017
> > > (r325954)
> > > > @@ -153,7 +153,6 @@ ${FULLKERNEL}: ${SYSTEM_DEP} vers.o
> > > >
> > > > OBJS_DEPEND_GUESS+= assym.s vnode_if.h ${BEFORE_DEPEND:M*.h} \
> > > > ${MFILES:T:S/.m$/.h/}
> > > > -LNFILES= ${CFILES:T:S/.c$/.ln/}
> > > >
> > > > .for mfile in ${MFILES}
> > > > # XXX the low quality .m.o rules gnerated by config are normally
> used
> > > > @@ -167,15 +166,11 @@ ${mfile:T:S/.m$/.h/}: ${mfile}
> > > > kernel-clean:
> > > > rm -f *.o *.so *.pico *.ko *.s eddep errs \
> > > > ${FULLKERNEL} ${KERNEL_KO} ${KERNEL_KO}.debug \
> > > > - linterrs tags vers.c \
> > > > + tags vers.c \
> > > > vnode_if.c vnode_if.h vnode_if_newproto.h
> vnode_if_typedef.h \
> > > > ${MFILES:T:S/.m$/.c/} ${MFILES:T:S/.m$/.h/} \
> > > > ${CLEAN}
> > > >
> > > > -lint: ${LNFILES}
> > > > - ${LINT} ${LINTKERNFLAGS} ${CFLAGS:M-[DILU]*} ${.ALLSRC} 2>&1 |
> \
> > > > - tee -a linterrs
> > > > -
> > > > # This is a hack. BFD "optimizes" away dynamic mode if there are no
> > > > # dynamic references. We could probably do a '-Bforcedynamic' mode
> like
> > > > # in the a.out ld. For now, this works.
> > > > @@ -364,9 +359,6 @@ kernel-reinstall:
> > > > config.o env.o hints.o vers.o vnode_if.o:
> > > > ${NORMAL_C}
> > > > ${NORMAL_CTFCONVERT}
> > > > -
> > > > -config.ln env.ln hints.ln vers.ln vnode_if.ln:
> > > > - ${NORMAL_LINT}
> > > >
> > > > .if ${MK_REPRODUCIBLE_BUILD} != "no"
> > > > REPRO_FLAG="-r"
> > > >
> > > > Modified: head/sys/conf/kern.pre.mk
> > > > ============================================================
> > > ==================
> > > > --- head/sys/conf/kern.pre.mk Fri Nov 17 18:00:52 2017
> (r325953)
> > > > +++ head/sys/conf/kern.pre.mk Fri Nov 17 18:16:46 2017
> (r325954)
> > > > @@ -46,7 +46,6 @@ M= ${MACHINE}
> > > >
> > > > AWK?= awk
> > > > CP?= cp
> > > > -LINT?= lint
> > > > NM?= nm
> > > > OBJCOPY?= objcopy
> > > > SIZE?= size
> > > > @@ -121,9 +120,6 @@ CFLAGS+= ${CONF_CFLAGS}
> > > > LDFLAGS+= -Wl,--build-id=sha1
> > > > .endif
> > > >
> > > > -# Optional linting. This can be overridden in /etc/make.conf.
> > > > -LINTFLAGS= ${LINTOBJKERNFLAGS}
> > > > -
> > > > NORMAL_C= ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.IMPSRC}
> > > > NORMAL_S= ${CC:N${CCACHE_BIN}} -c ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}
> > > > PROFILE_C= ${CC} -c ${CFLAGS} ${WERROR} ${.IMPSRC}
> > > > @@ -175,8 +171,6 @@ NORMAL_CTFCONVERT=
> > > > .else
> > > > NORMAL_CTFCONVERT= @:
> > > > .endif
> > > > -
> > > > -NORMAL_LINT= ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC}
> > > >
> > > > # Linux Kernel Programming Interface C-flags
> > > > LINUXKPI_INCLUDES= -I$S/compat/linuxkpi/common/include
> > > >
> > > > Modified: head/sys/conf/kmod.mk
> > > > ============================================================
> > > ==================
> > > > --- head/sys/conf/kmod.mk Fri Nov 17 18:00:52 2017
> (r325953)
> > > > +++ head/sys/conf/kmod.mk Fri Nov 17 18:16:46 2017
> (r325954)
> > > > @@ -469,9 +469,6 @@ genassym.o: ${SRCS:Mopt_*.h}
> > > > ${SYSDIR}/${MACHINE}/${MACHINE}/genassym.c
> > > > .endif
> > > >
> > > > -lint: ${SRCS}
> > > > - ${LINT} ${LINTKERNFLAGS} ${CFLAGS:M-[DILU]*} ${.ALLSRC:M*.c}
> > > > -
> > > > .if defined(KERNBUILDDIR)
> > > > ${OBJS}: opt_global.h
> > > > .endif
> > > >
> > > > Modified: head/usr.sbin/config/mkmakefile.c
> > > > ============================================================
> > > ==================
> > > > --- head/usr.sbin/config/mkmakefile.c Fri Nov 17 18:00:52 2017
> > > (r325953)
> > > > +++ head/usr.sbin/config/mkmakefile.c Fri Nov 17 18:16:46 2017
> > > (r325954)
> > > > @@ -690,18 +690,11 @@ do_rules(FILE *f)
> > > > continue;
> > > > }
> > > > if (ftp->f_depends) {
> > > > - fprintf(f, "%s%sln: $S/%s%c %s\n",
> > > > - ftp->f_objprefix, tail(np), np,
> > > och,
> > > > - ftp->f_depends);
> > > > - fprintf(f, "\t${NORMAL_LINT}\n\n");
> > > > fprintf(f, "%s%so: $S/%s%c %s\n",
> > > > ftp->f_objprefix, tail(np), np,
> > > och,
> > > > ftp->f_depends);
> > > > }
> > > > else {
> > > > - fprintf(f, "%s%sln: $S/%s%c\n",
> > > > - ftp->f_objprefix, tail(np), np,
> > > och);
> > > > - fprintf(f, "\t${NORMAL_LINT}\n\n");
> > > > fprintf(f, "%s%so: $S/%s%c\n",
> > > > ftp->f_objprefix, tail(np), np,
> > > och);
> > > > }
> > > >
> > > >
> > >
> > > --
> > > Rod Grimes
> > > rgrimes at freebsd.org
> > >
>
> --
> Rod Grimes
> rgrimes at freebsd.org
>
More information about the svn-src-head
mailing list