Re: FYI: Why META_MODE rebuilds so much for building again after installworld (no source changes)

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 23 Feb 2023 00:40:26 UTC
On Feb 22, 2023, at 15:26, Simon J. Gerraty <sjg@juniper.net> wrote:

>>>>>> The timestamp on . . ./tmp/legacy/usr/sbin/rm is not
>>>>>> actually relevant to if libc++.a needs to be rebuilt.
>>>> 
>>>> True.
>>>> If there is nothing under .../tmp/legacy that should be counted you can
>>>> just:
>>>> 
>>>> .MAKE.META_IGNORE_PATHS += that path
>> 
>> Was that supposed to be ("." vs. "_"):
>> 
>> .MAKE.META.IGNORE_PATHS += that path
> 
> Yes, sorry.

Thanks for the information.

> strings `which bmake` | grep META.IGNORE
> .MAKE.META.IGNORE_PATHS
> .MAKE.META.IGNORE_PATTERNS
> ${.MAKE.META.IGNORE_PATHS:O:u:tA}

The -dM output's "is newer than the target" lines
show the path from before the above transformation.
(The :tA results possibly could use another
sort/uniq sequence for the realpath results?)

I've been pondering things because, so far, my
attempts to experiment with this has failed to make
the -dM output lines for the paths go away and it
still does the related build activity. I've been
trying the likes of:

.for ignore_legacy_tool in awk cap_mkdb cat cp crunchgen crunchide dd egrep env file2c gencat grep gzip jot lex lb ln m4 mkcsmapper mktemp mv patch realpath rm sed sh touch truncate uudecode uuencode
xargs
.MAKE.META.IGNORE_PATHS+= ${OBJTOP}/tmp/legacy/usr/sbin/${ignore_legacy_tool}
.endfor
.for ignore_other_tool in ctfconvert objcopy nm
.MAKE.META.IGNORE_PATHS+= ${OBJTOP}/tmp/usr/bin/${ignore_other_tool}
.endfor

in what I use for make.conf via:

__MAKE_CONF=/usr/home/root/src.configs/make.conf

It is using paths that match the -dM output lines ( sbin
use despite sbin -> ../bin being a symbolic link).

Note: WORLDTMP is not defined that early, thus the ${OBJTOP}/tmp
use.

-V.MAKE.META.IGNORE_PATHS is showing the paths I would
expect, matching the -dM lines.

So I'm still pondering what might be going on.

> .MAKE.META.IGNORE_FILTER
> ${.MAKE.META.IGNORE_PATTERNS:@m@${.p.:M$m}@}


===
Mark Millard
marklmi at yahoo.com