Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Sep 2019 09:33:08 -0500
From:      Kyle Evans <kevans@freebsd.org>
To:        Enji Cooper <yaneurabeya@gmail.com>
Cc:        Poul-Henning Kamp <phk@phk.freebsd.dk>, current <current@freebsd.org>,  Kyle Evans <kevans@freebsd.org>
Subject:   Re: Weird goings on with make::empty()
Message-ID:  <CACNAnaE7Gw=r92akmx=tXgGNb=H7GuKm7=iXX2cLtSAxNALikA@mail.gmail.com>
In-Reply-To: <969A062A-A52A-49E3-B4E3-CC9377B08C80@gmail.com>
References:  <3843.1567598344@critter.freebsd.dk> <969A062A-A52A-49E3-B4E3-CC9377B08C80@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Sep 4, 2019 at 9:27 AM Enji Cooper <yaneurabeya@gmail.com> wrote:
>
>
> > On Sep 4, 2019, at 04:59, Poul-Henning Kamp <phk@phk.freebsd.dk> wrote:
> >
> > On:
> >
> >    Repository Root: svn+ssh://repo.freebsd.org/base
> >    Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
> >    Revision: 351809
> >
> > I built a kernel, but drm-current-kmod did not get compiled
> > from the new world order in /usr/local/sys/modules
> >
> > Debugging I ended up doing this to src/sys/conf/kern.post.mk:
> >
> >    Index: sys/conf/kern.post.mk
> >    =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >    --- sys/conf/kern.post.mk    (revision 351809)
> >    +++ sys/conf/kern.post.mk    (working copy)
> >    @@ -77,12 +77,14 @@
> >            ${target:S/^reinstall$/install/:S/^clobber$/cleandir/}
> >     .endif
> >     .for module in ${LOCAL_MODULES}
> >    -.if !empty(module)
> >    +    true "XXX A $(module) 2 ${LOCALBASE} 3 ${LOCAL_MODULES} 4 ${MOD=
ULES_WITH_WORLD}"
> >    +#.if !empty(module)
> >    +    true "XXX B $(module) 2 ${LOCALBASE} 3 ${LOCAL_MODULES} 4 ${MOD=
ULES_WITH_WORLD}"
> >        @${ECHODIR} "=3D=3D=3D> ${module} (${target:S/^reinstall$/instal=
l/:S/^clobber$/cleandir/})"
> >        @cd ${LOCAL_MODULES_DIR}/${module}; ${MKMODULESENV} ${MAKE} \
> >            DIRPRFX=3D"${module}/" \
> >            ${target:S/^reinstall$/install/:S/^clobber$/cleandir/}
> >    -.endif
> >    +#.endif
> >     .endfor
> >     .endif
> >     .endfor
> >
> > This gives me the expected output from buildkernel:
> >
> >    true "XXX A drm-current-kmod 2 /usr/local 3 drm-current-kmod 4 "
> >    true "XXX B drm-current-kmod 2 /usr/local 3 drm-current-kmod 4 "
> >
> > If I leave in the ".if !empty(module)" line in, I only get:
> >
> >    true "XXX A drm-current-kmod 2 /usr/local 3 drm-current-kmod 4 "
> >
> > suggestions welcome...
>
> (CCing Kyle)
>
> This behavior change is probably caused by r351799.
>
> I personally think the code before Kyle=E2=80=99s change and after it was=
 buggy. It=E2=80=99s not word splitting LOCAL_MODULES before iterating over=
 it.
>

I've backed out r351799 since it breaks usage of LOCAL_MODULES (though
I really don't understand how empty works, apparently, and that makes
me sad)... please advise on a correct path forward, because it's not
clear to me.

Thanks,

Kyle Evans



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACNAnaE7Gw=r92akmx=tXgGNb=H7GuKm7=iXX2cLtSAxNALikA>