Re: FYI: Why META_MODE rebuilds so much for building again after installworld (no source changes)
- Reply: Mark Millard : "Re: FYI: Why META_MODE rebuilds so much for building again after installworld (no source changes)"
- Reply: Simon J. Gerraty: "Re: FYI: Why META_MODE rebuilds so much for building again after installworld (no source changes)"
- In reply to: Simon J. Gerraty: "Re: FYI: Why META_MODE rebuilds so much for building again after installworld (no source changes)"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 23 Feb 2023 03:47:41 UTC
On Feb 22, 2023, at 17:18, Simon J. Gerraty <sjg@juniper.net> wrote: > Mark Millard <marklmi@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