Date: Fri, 9 Sep 2016 17:37:27 -0700 From: "Simon J. Gerraty" <sjg@juniper.net> To: Bryan Drewery <bdrewery@freebsd.org> Cc: <src-committers@freebsd.org>, <svn-src-all@freebsd.org>, <svn-src-head@freebsd.org>, <sjg@juniper.net> Subject: Re: svn commit: r305634 - head/share/mk Message-ID: <76524.1473467847@kaos.jnpr.net> In-Reply-To: <bf4c21cd-cbf3-55b9-d0f0-c0cbd01e5428@FreeBSD.org> References: <201609090121.u891LZOO023156@repo.freebsd.org> <bf4c21cd-cbf3-55b9-d0f0-c0cbd01e5428@FreeBSD.org>
index | next in thread | previous in thread | raw e-mail
Bryan Drewery <bdrewery@freebsd.org> wrote:
> > +# some targets involve old pre-built targets
> > +# ignore mtime of shell
> > +# and mtime of makefiles does not matter in meta mode
> > +.MAKE.META.IGNORE_PATHS += \
> > + ${MAKEFILE} \
> > + ${SHELL} \
> > + ${SYS_MK_DIR}
>
> I think it could be problematic to ignore *.mk changes. The build
If you're not concerned with build optimization,
this can be disabled - but pretty much any sub-make for which there is a
.meta file will be out-of-date by any changed to *.mk
> commands may stay the same, but targets could grow new dependencies. If
> those dependencies are already "met" then meta mode won't reconsider them.
I'm not sure how easy it is to accomplish that situation.
> Consider:
> Build 1:
> bar:
> touch dep
> touch bar
>
> foo:
> touch foo
>
> all: bar foo
>
> In the first build, all generates dep, bar and foo.
>
> Then the code is changed to:
>
> bar:
> touch bar
>
> dep:
> touch notmade
> touch dep
>
> foo: dep
> touch foo
>
> all: foo bar
>
> Now in the second build, all finds bar command changes and rebuilds,
> finds foo command is the same and that dep is already satisfied from the
> last build. So 'notmade' is never made.
Actually given you have missing-meta=yes
target dep would be remade, either because there is no .meta file, or
because its commands changed.
Thus notmade should be.
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?76524.1473467847>
