Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Sep 2019 07:27:09 -0700
From:      Enji Cooper <yaneurabeya@gmail.com>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        current@freebsd.org, kevans@FreeBSD.org
Subject:   Re: Weird goings on with make::empty()
Message-ID:  <969A062A-A52A-49E3-B4E3-CC9377B08C80@gmail.com>
In-Reply-To: <3843.1567598344@critter.freebsd.dk>
References:  <3843.1567598344@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help


> 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
>    ===================================================================
>    --- 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 ${MODULES_WITH_WORLD}"
>    +#.if !empty(module)
>    +    true "XXX B $(module) 2 ${LOCALBASE} 3 ${LOCAL_MODULES} 4 ${MODULES_WITH_WORLD}"
>        @${ECHODIR} "===> ${module} (${target:S/^reinstall$/install/:S/^clobber$/cleandir/})"
>        @cd ${LOCAL_MODULES_DIR}/${module}; ${MKMODULESENV} ${MAKE} \
>            DIRPRFX="${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’s change and after it was buggy. It’s not word splitting LOCAL_MODULES before iterating over it.

Cheers,
-Enji


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?969A062A-A52A-49E3-B4E3-CC9377B08C80>