RE: 13.2 BETA2: how do debug META_MODE?
- Reply: Peter : "Re: 13.2 BETA2: how do debug META_MODE?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 21 Feb 2023 04:44:59 UTC
Peter <pmc_at_citylink.dinoex.sub.org> wrote on Date: Tue, 21 Feb 2023 03:45:12 UTC : > on /some/ of my nodes, META_MODE seems not being honored anymore: > I had to build them another time, and the lengthy lib/clang gets > built all over again (tried two times). > This is so since 13.2 (BETA2). It did work in 13.1 (RELENG), at least > according to the timing from the logfiles. > > Now I'm trying to figure out the difference, because I have some > nodes where it appears to more-or-less work (have seen buildworld > take 5 minutes), and others where it doesn't (take an hour to build). > The thing is scripted, so it is not so very likely an operator error > (while not impossible either). > > But it seems difficult to figure out details: "make -n" seems to not > care about META_MODE, while META_MODE suppresses all useful output from > make. And the docs say there are *.meta files (yes there are), but no > info about how to verify their content, or how to get make tell what > it is going to do and why (and the buildworld is not the most easy > to understand target)... > > So, some inspiration would be welcome... On thing to check on is if filemon.ko is loaded and operational. META_MODE greatly depends on it. Another thing to know is that the following are very different for what all is built for the "(again #0)" line vs. the other two "again" lines, using buildworld as an example context. Imagine here the the first buildworld rebuilds llvm/clang materials. # cd /usr/src/ # env WITH_META_MODE=yes make buildworld # env WITH_META_MODE=yes make installworld # env WITH_META_MODE=yes make buildworld (again #0) ## no more rebuilds below? # env WITH_META_MODE=yes make buildworld (again #1) # env WITH_META_MODE=yes make buildworld (again #2) Unfortunately, the some of the install activity registers as activity that is to cause later rebuild activity: updated file dates. There are also issues of sort of a feedback loop: rm ends up updated (deleted and replaced) by install but rm was also listed as part of the sequence of replacing some other files. Result? The rm removal/replacement ends up meaning the files are to be regenerated, not just recopied. There is a long list of such commands, not just rm. "again #0" will rebuild llvm/clang. The other two "again"s will not. See: https://lists.freebsd.org/pipermail/freebsd-current/2021-January/078488.html and: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257616 . === Mark Millard marklmi at yahoo.com