Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Oct 2016 18:00:08 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r307825 - head
Message-ID:  <201610231800.u9NI08hH093288@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: imp
Date: Sun Oct 23 18:00:08 2016
New Revision: 307825
URL: https://svnweb.freebsd.org/changeset/base/307825

Log:
  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.

Modified:
  head/Makefile.inc1
  head/UPDATING

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1	Sun Oct 23 17:48:34 2016	(r307824)
+++ head/Makefile.inc1	Sun Oct 23 18:00:08 2016	(r307825)
@@ -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/libdw
 .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}; \

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Sun Oct 23 17:48:34 2016	(r307824)
+++ head/UPDATING	Sun Oct 23 18:00:08 2016	(r307825)
@@ -41,10 +41,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12
 	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: ******************************
 



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