aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2020-12-08 06:31:31 -0800
committerNathan Sidwell <nathan@acm.org>2020-12-08 06:31:31 -0800
commit0bd4fecbea3b3da9befe24906f699d63fb28ed71 (patch)
treefa6703f6a6c098172dd8168d7eb333e71c386b22
parent210d143dbc575f293affbd55417505bcb8257d74 (diff)
downloadgcc-0bd4fecbea3b3da9befe24906f699d63fb28ed71.zip
gcc-0bd4fecbea3b3da9befe24906f699d63fb28ed71.tar.gz
gcc-0bd4fecbea3b3da9befe24906f699d63fb28ed71.tar.bz2
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.
-rw-r--r--gcc/cp/Make-lang.in3
-rw-r--r--gcc/cp/module.cc1
2 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index d7dc0de..5211665 100644
--- a/gcc/cp/Make-lang.in
+++ b/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 a/gcc/cp/module.cc b/gcc/cp/module.cc
index 24580c7..9a5d73af 100644
--- a/gcc/cp/module.cc
+++ b/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)