Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 May 2017 23:24:55 -0700
From:      "Simon J. Gerraty" <sjg@juniper.net>
To:        "O. Hartmann" <ohartmann@walstatt.org>
Cc:        FreeBSD CURRENT <freebsd-current@freebsd.org>, <sjg@juniper.net>
Subject:   Re: filemon: weird full-time build although filemon enabled
Message-ID:  <16322.1494224695@kaos.jnpr.net>
In-Reply-To: <20170506092255.083828f8@thor.intern.walstatt.dynvpn.de>
References:  <20170506092255.083828f8@thor.intern.walstatt.dynvpn.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

> I build CURRENT on two technically similar systems on a almost daily bas=
is. Therefore, it
> was a great relief having WITH_META_MODE=3Dyes set in /etc/src-env.conf =
for incremental
> builds. To make my understanding of this clear (just in case I'm wrong):=
 setting
> WITH_META_MODE builds only portions that does not need to be build in th=
e make context.

I'm not sure I parsed that correctly, so let me just say;
With MK_META_MODE=3Dyes, bmake should be put into meta mode.

This simply means that most targets get a .meta file, that records the
expanded command line, any command output and a syscall trace.
These can be very useful for debugging.

More important; on an update build bmake can use them to make targets
out-of-date that the normal rules miss.
Any change to the expanded command line, makes the target out-of-date.
Any change to any file read or executed makes the target out-of-date.
 =

> Well, the reason writing this email is: on one system, I run almost ever=
y reboot into a
> "full build" and this puzzles me a bit. The long-lasting and time exhaus=
ting builds are

You can add -dM to your build flags to have meta_oodate() - the function
that does the above, explain why it decided the target is out-of-date.
The results can be enlightening.

Note, if a target rebuilds without -dM saying why - then the normal make
rules decided it was out-of-date.

> within the LLVM/CLANG tree. They consume a lot of time. The box in
> question does have a

Yes, building clang takes a while...

> Well, having said this, I need to mention that both systems use almost
> identical /etc/src.conf setting - except the order of appearance of
> the WITH_ tags.

That should not matter, bsd.mkopt.mk processes them in a specified
order.

> The problem: to make my point clear: the "weak" box starts compiling alm=
ost everytime now
> the LLVM/CLANG tree while the XEON box does not. This is spooky.

Add -dM, and see if that tells you why.
Also confirm that filemon is getting loaded after each reboot.
If that comes and goes, that could cause the behavior you see.

> I think there is something missing an I'd like to ask what is the sugges=
ted way to
> initially restart a full build to ensure that WITH_META_MODE gets initia=
lised correctly.

I think Bryan has set that up so that it should take care of itself
pretty well - even toggling bewteen non-meta and meta builds should
DTRT - which is why it matters if filemon was used that it is there for
next build.

> Well, I'm not a developer, so please be patient with my naive report.

No problem.  Adding -dM to your build (will add a fair bit of output),
will hopefully tell you what's up.

=46rom what you describe, I'd not be surprised if you see some
"a build command has changed" and it only takes a few to trigger a
cascade of targets out-of-date.

--sjg




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?16322.1494224695>