Won't this break non LINT builds? Maybe we should fix the crazy way we generate lint?
On Wed, Sep 23, 2020, 7:21 AM Kyle Evans <kev...@freebsd.org> wrote: > On Mon, Sep 21, 2020 at 7:23 PM Ravi Pokala <rpok...@freebsd.org> wrote: > > > > -----Original Message----- > > From: <owner-src-committ...@freebsd.org> on behalf of Ed Maste > <ema...@freebsd.org> > > Date: 2020-09-17, Thursday at 11:47 > > To: <src-committ...@freebsd.org>, <svn-src-...@freebsd.org>, < > svn-src-head@freebsd.org> > > Subject: svn commit: r365846 - head > > > > Author: emaste > > Date: Thu Sep 17 18:47:23 2020 > > New Revision: 365846 > > URL: https://svnweb.freebsd.org/changeset/base/365846 > > > > Log: > > Cirrus-CI: build as an unprivileged user > > > > The Cirrus-CI-provided working tree is owned by root. Leave that > as is > > for simplicity but build as an unprivileged user; this tests > building > > with an unmodifiable source tree as a side effect. > > > > Hi Ed, > > > > We're still generating the LINT kernconfs into the src tree though, > right? Moving that to allow for universe/tinderboxing a r/o src tree seems > like an obvious idea. The fact that we don't already do that implies that > there's a non-obvious complication with that idea; does anyone know why > that is? > > > > Thanks, > > > > Ravi (rpokala@) > > So, the main limiting factor here is config(8) logistics. You've got > two questions to sort out: > > 1. Where in .OBJDIR do you put LINT? > 2. How do you tell config(8) to find that LINT? > > I think both of these are actually pretty easy to solve. For the > former, sys/conf/makeLINT.mk would need to be directed to put them in > ${OBJTOP}/${.CURDIR} instead of ${.CURDIR} so that it ends up in > ${OBJTOP}/sys/${MACHINE}/conf -- this is kind of unusual since nothing > else will get stored there, but ultimately not a big deal. There's an > inline patch that gets us probably the most of the way, but universe > would still need a little bit of love. I don't think that part would > suck much either, and it probably would clean things up a little bit > too- for MAKE_LINT_KERNELS you wouldn't need to bother searching the > in-tree confdir. > > Thanks, > > Kyle Evans > > (as an aside, I re-read Ed's commit message after this and realized I > had asked something almost verbatim as the commit message explained > it... sorry) > > root@viper:/usr/src# git diff Makefile.inc1 sys/conf/makeLINT.mk > diff --git a/Makefile.inc1 b/Makefile.inc1 > index de4970efeef..2a095f2f903 100644 > --- a/Makefile.inc1 > +++ b/Makefile.inc1 > @@ -1591,9 +1591,11 @@ KERNCONF?= GENERIC > INSTKERNNAME?= kernel > > KERNSRCDIR?= ${.CURDIR}/sys > -KRNLCONFDIR= ${KERNSRCDIR}/${TARGET}/conf > +KRNLRELCONFDIR= ${TARGET}/conf > +KRNLCONFDIR= ${KERNSRCDIR}/${KRNLRELCONFDIR} > KRNLOBJDIR= ${OBJTOP}${KERNSRCDIR:C,^${.CURDIR},,} > KERNCONFDIR?= ${KRNLCONFDIR} > +KERNCONFOBJDIR?= ${OBJTOP}/sys/${KRNLRELCONFDIR} > > BUILDKERNELS= > INSTALLKERNEL= > @@ -1602,8 +1604,14 @@ INSTALLKERNEL= > BUILDKERNELS+= dummy > .endif > .for _kernel in ${KERNCONF} > -.if !defined(_MKSHOWCONFIG) && exists(${KERNCONFDIR}/${_kernel}) > +.if !defined(_MKSHOWCONFIG) && \ > + (exists(${KERNCONFDIR}/${_kernel}) || > exists(${KERNCONFOBJDIR}/${_kernel})) > BUILDKERNELS+= ${_kernel} > +.if exists(${KERNCONFDIR}/${_kernel}) > +KERNCONFDIR_${TARGET}_${_kernel}=${KERNCONFDIR} > +.else > +KERNCONFDIR_${TARGET}_${_kernel}=${KERNCONFOBJDIR} > +.endif > .if empty(INSTALLKERNEL) && !defined(NO_INSTALLKERNEL) > INSTALLKERNEL= ${_kernel} > .endif > @@ -1661,7 +1669,7 @@ buildkernel: .MAKE .PHONY > PATH=${TMPPATH} \ > config ${CONFIGARGS} -d ${KRNLOBJDIR}/${_kernel} \ > -I '${KERNCONFDIR}' -I '${KRNLCONFDIR}' \ > - '${KERNCONFDIR}/${_kernel}' > + '${KERNCONFDIR_${TARGET}_${_kernel}}/${_kernel}' > .endif > .if ${MK_CLEAN} == "yes" && !defined(NO_KERNELCLEAN) > @echo > diff --git a/sys/conf/makeLINT.mk b/sys/conf/makeLINT.mk > index b2fc256621b..edaea99750a 100644 > --- a/sys/conf/makeLINT.mk > +++ b/sys/conf/makeLINT.mk > @@ -1,8 +1,5 @@ > # $FreeBSD$ > > -# The LINT files need to end up in the kernel source directory. > -.OBJDIR: ${.CURDIR} > - > all: > @echo "make LINT only" > _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"