Tweak the UPDATING message a bit about the upgrade path.

Add some automation into Makefile.inc1 to to enforce known good
upgrade from source paths.
This commit is contained in:
Warner Losh 2016-10-23 18:00:08 +00:00
parent 3c2b90f1d1
commit 9013696194
2 changed files with 21 additions and 5 deletions

View File

@ -453,7 +453,7 @@ PACKAGE= kernel
#
BOOTSTRAPPING?= 0
# Keep these in sync
# Keep these in sync -- see below for special case exception
MINIMUM_SUPPORTED_OSREL?= 900044
MINIMUM_SUPPORTED_REL?= 9.1
@ -1557,10 +1557,23 @@ _elftoolchain_libs= lib/libelf lib/libdwarf
.endif
legacy: .PHONY
# Temporary special case for automatically detecting the clang compiler issue
# Note: 9.x didn't have FreeBSD_version bumps often enough, so you may need to
# set BOOTSTRAPPING to 0 if you're stable/9 tree post-dates r286035 but is before
# the version bump in r296219 (from July 29, 2015 -> Feb 29, 2016).
.if ${BOOTSTRAPPING} != 0 && \
${WANT_COMPILER_TYPE} == "clang" && ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 30601
.if ${BOOTSTRAPPING} > 10000000 && ${BOOTSTRAPPING} < 1002501
@echo "ERROR: Source upgrades from stable/10 prior to r286033 are not supported."; false
.elif ${BOOTSTRAPPING} > 9000000 && ${BOOTSTRAPPING} < 903509
@echo "ERROR: Source upgrades from stable/9 prior to r286035 are not supported."; false
.endif
.endif
.if ${BOOTSTRAPPING} < ${MINIMUM_SUPPORTED_OSREL} && ${BOOTSTRAPPING} != 0
@echo "ERROR: Source upgrades from versions prior to ${MINIMUM_SUPPORTED_REL} are not supported."; \
false
.endif
.for _tool in tools/build ${_elftoolchain_libs}
${_+_}@${ECHODIR} "===> ${_tool} (obj,includes,all,install)"; \
cd ${.CURDIR}/${_tool}; \

View File

@ -41,10 +41,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
11.0-RELEASE). These revisions post-date the 10.2 and 9.3 releases, so
you'll need to take the unusual step of upgrading to the tip of the
stable branch before moving to 11 or -current via a source upgrade.
stable/11 and 11.0-RELEASE post-date the fix so you can move from them
to -current. This differs from the historical situation where one could
upgrade from anywhere on the last couple of stable branches, so be
careful.
stable/11 and 11.0-RELEASE have working newer compiler. This differs
from the historical situation where one could upgrade from anywhere on
the last couple of stable branches, so be careful.
If you're running a hybrid system on 9.x or 10.x with an updated clang
compiler or are using an supported external toolchain, the build system
will allow the upgrade. Otherwise it will print a reminder.
****************************** SPECIAL WARNING: ******************************