On Feb 22, 2023, at 17:18, Simon J. Gerraty <s...@juniper.net> wrote:

> Mark Millard <mark...@yahoo.com> wrote:
> 
>> 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?)
> 
> That indicates the above IGNOREs are not working.
> 
>> 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
> 
> Is there anything under ${OBJTOP}/tmp that you don't want to ignore?

More than just _bootstrap_tools_links entries end up in
${WORLDTMP}/legacy/bin/  (so in ${WORLDTMP}/legacy/sbin/
via the symbolic link pointing to ${WORLDTMP}/legacy/bin/ ).
So: yes.

Also, OBJTOP is not constant over all the parts of
buildworld buildkernel . Having the late-substitution
form of notation ${OBJTOP} might not be appropriate
for the content of .MAKE.META.IGNORE_PATHS .

I'm trying to figure out if there is a stable way of
getting a path that would not suffer variability
via late substitution. 

> Otherwise you could simply use
> 
> .MAKE.META.IGNORE_PATHS+= ${OBJTOP}/tmp/

(Ignoring the variability of OBJTOP issue . . .)

I do not expect that would work: ignoring things
it likely should not.

Also, I'd rather grow a smaller set of ignores
gradually to make it easier to detect if an
addition starts causing a problem and can be
backed out. Starting with everything ignored
would make things much harder to figure out
when ignoring creates a problem.

> You might need ${OBJTOP:tA}/tmp/
> or both.
> 
>> .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.
> 
> Do you have example?
> I really need to add some unit-tests for these...

You may want to wait while I see if I can come up with
a better example context to show things. I only just
noticed the late-substitution potential issue and
started looking for a way to avoid it, for example.
(Either a value that does not vary or a form of
causing up-front substitutions in my make.conf .)


===
Mark Millard
marklmi at yahoo.com


Reply via email to