svn commit: r305634 - head/share/mk

Bryan Drewery bdrewery at FreeBSD.org
Wed Sep 14 18:14:18 UTC 2016


On 9/9/16 5:37 PM, Simon J. Gerraty wrote:
> Bryan Drewery <bdrewery at 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.

Can you at least wrap it in something like .if
!defined(META_CONSIDER_MK_FILES) ?

>  
>> 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.
> 

Good point.

-- 
Regards,
Bryan Drewery

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20160914/aa75db10/attachment.sig>


More information about the svn-src-head mailing list