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>