svn commit: r365846 - head
Warner Losh
imp at bsdimp.com
Wed Sep 23 14:30:18 UTC 2020
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 <kevans at freebsd.org> wrote:
> On Mon, Sep 21, 2020 at 7:23 PM Ravi Pokala <rpokala at freebsd.org> wrote:
> >
> > -----Original Message-----
> > From: <owner-src-committers at freebsd.org> on behalf of Ed Maste
> <emaste at FreeBSD.org>
> > Date: 2020-09-17, Thursday at 11:47
> > To: <src-committers at freebsd.org>, <svn-src-all at freebsd.org>, <
> svn-src-head at 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 at 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"
>
More information about the svn-src-head
mailing list