On 12/8/20 8:01 AM, Nathan Sidwell wrote:
This adds MODULE_VERSION to the makefile, so it's generated from the date of the module.cc file in development.  Also adds the include files to module.cc

It broke :(


c++: Fix MODULE_VERSION breakage

Adding includes to module.cc triggered the kind of build failure I
wanted to check for.  In this case it was MODULE_VERSION not being
defined, and module.cc's internal #error triggering.  I've relaxed the
check in Make-lang, so we proviude MODULE_VERSION when DEVPHASE is not
empty (rather than when it is 'experimental').  AFAICT devphase is
empty for release builds, and the #error will force us to decide
whether modules is sufficiently baked at that point.

        gcc/cp
        * Make-lang.in (MODULE_VERSION): Override when DEVPHASE not empty.
        * module.cc: Comment.


--
Nathan Sidwell
diff --git c/gcc/cp/Make-lang.in w/gcc/cp/Make-lang.in
index d7dc0dec2b8..52116652900 100644
--- c/gcc/cp/Make-lang.in
+++ w/gcc/cp/Make-lang.in
@@ -57,7 +57,8 @@ CFLAGS-cp/g++spec.o += $(DRIVER_DEFINES)
 CFLAGS-cp/module.o += -DHOST_MACHINE=\"$(host)\" \
 	-DTARGET_MACHINE=\"$(target)\"
 
-ifeq ($(DEVPHASE_c),experimental)
+# In non-release builds, use a date-related module version.
+ifneq ($(DEVPHASE_c),)
 # Some date's don't grok 'r', if so, simply use today's
 # date (don't bootstrap at midnight).
 MODULE_VERSION := $(shell date -r $(srcdir)/cp/module.cc '+%y%m%d-%H%M' \
diff --git c/gcc/cp/module.cc w/gcc/cp/module.cc
index 24580c70907..9a5d73af20e 100644
--- c/gcc/cp/module.cc
+++ w/gcc/cp/module.cc
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3.  If not see
 #define MODULE_MINOR(V) ((V) % 10000)
 #define EXPERIMENT(A,B) (IS_EXPERIMENTAL (MODULE_VERSION) ? (A) : (B))
 #ifndef MODULE_VERSION
+// Be sure you're ready!  Remove #error this before release!
 #error "Shtopp! What are you doing? This is not ready yet."
 #include "bversion.h"
 #define MODULE_VERSION (BUILDING_GCC_MAJOR * 10000U + BUILDING_GCC_MINOR)

Reply via email to