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