build: Switch CLEAN back off by default, again

Now that we have the notion of a build epoch, we have sufficient tooling
to handle changes that might need a larger hammer to unbreak the build.

Future changes may extend our cleanup to avoid scenarios like with the
MITKRB5 knob where flipping it will still require a cleanup, but on the
whole most users aren't regularly flipping breaking knobs enough for
this to cause the same level of problems.  Those users are advised to do
a CLEAN build when they flip it until we start recording build options
and doing another clean for important knob switches (see D52011).

When knobs of that sort are newly introduced or switch defaults, we can
explicitly record an epoch for them in the interim until
option-switching is detected and handled properly.

This reverts commit 6dab48b9de.

Reviewed by:	jrtc27, markj
Differential Revision:	https://reviews.freebsd.org/D51923
This commit is contained in:
Kyle Evans
2025-08-19 23:14:13 -05:00
parent 0f73fdfc2a
commit dc5f8c3442
4 changed files with 18 additions and 4 deletions
+7
View File
@@ -27,6 +27,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW:
world, or to merely disable the most expensive debugging functionality
at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
20250819:
The CLEAN option has been switched back from default-on to default-off.
This reverts the 20250808 change below, which had reverted the 20240729
change before it. Note that some src.conf(5) options are known to break
ABI or compatibility in ways that may require a clean build initially
when switched.
20250816:
Sendmail's libmilter has been moved to its own package. If you want
to compile applications that use libmilter, you should install the
+6 -3
View File
@@ -1,5 +1,5 @@
.\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman.
.Dd August 8, 2025
.Dd August 19, 2025
.Dt SRC.CONF 5
.Os
.Sh NAME
@@ -411,8 +411,11 @@ Build clang-format.
.It Va WITHOUT_CLANG_FULL
Avoid building the ARCMigrate, Rewriter and StaticAnalyzer components of
the Clang C/C++ compiler.
.It Va WITHOUT_CLEAN
Do not clean before building world and/or kernel.
.It Va WITH_CLEAN
Clean before building world and/or kernel.
Note that recording a new epoch in
.Pa .clean_build_epoch
in the root of the source tree will also force a clean world build.
.It Va WITHOUT_CPP
Do not build
.Xr cpp 1 .
+1 -1
View File
@@ -80,7 +80,6 @@ __DEFAULT_YES_OPTIONS = \
CDDL \
CLANG \
CLANG_BOOTSTRAP \
CLEAN \
CPP \
CROSS_COMPILER \
CRYPT \
@@ -201,6 +200,7 @@ __DEFAULT_NO_OPTIONS = \
BHYVE_SNAPSHOT \
CLANG_EXTRAS \
CLANG_FORMAT \
CLEAN \
DIALOG \
DETECT_TZ_CHANGES \
DISK_IMAGE_TOOLS_BOOTSTRAP \
+4
View File
@@ -0,0 +1,4 @@
Clean before building world and/or kernel.
Note that recording a new epoch in
.Pa .clean_build_epoch
in the root of the source tree will also force a clean world build.