[Bug 257616] WITH_META_MODE=yes, toolchain is rebuilt each make buildworld

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 04 Aug 2021 18:42:53 +0000
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257616

Mark Millard <marklmi26-fbsd_at_yahoo.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marklmi26-fbsd_at_yahoo.com

--- Comment #3 from Mark Millard <marklmi26-fbsd_at_yahoo.com> ---
I'll note that if

#define __FreeBSD_version

in src/tree/sys/sys/param.h has changed, rebuilds
are expected behavior. So I'm assuming that has
not changed.

Are you saying that the following wort of sequence
rebuilds the toolchain 3 times?

# cd /usr/src/
# env WITH_META_MODE=yes make buildworld
# env WITH_META_MODE=yes make buildworld
# env WITH_META_MODE=yes make buildworld

Note that lack of any other activity between buildworld's.
I do not expect the above would rebuild the toolchain
3 times.

By constrast it is expected that the below sort of
sequence will rebuild (or relink) more than the
the above would overall:

# cd /usr/src/
# env WITH_META_MODE=yes make buildworld
# env WITH_META_MODE=yes make installworld
# env WITH_META_MODE=yes make buildworld
# env WITH_META_MODE=yes make installworld
# env WITH_META_MODE=yes make buildworld

This is because the installworld activity will update
file dates on files that WITH_META_MODE checks as an
example of a dependency. WITH_META_MODE has some examples
of dependency recording that could be avoided with
appropriate safety. An example would be avoiding checking
in the rm command having been updated, even when rm was
used in the command sequence for regenerating a file.

You may need to be more explicit about your sequence of
steps that leads to the rebuilds that you object to.

-- 
You are receiving this mail because:
You are the assignee for the bug.
Received on Wed Aug 04 2021 - 18:42:53 UTC

Original text of this message