summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Makefile.in13
-rw-r--r--Makefile.tpl13
-rwxr-xr-xconfigure8
-rw-r--r--configure.ac7
5 files changed, 35 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index d742bf253d0..7b2f2b29ff4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-05-21 Jason Merrill <jason@redhat.com>
+
+ * configure.ac: Add -std=c++98 to stage1_cxxflags.
+ * Makefile.tpl (STAGE1_CXXFLAGS): And substitute it.
+ * Makefile.in, configure: Regenerate.
+
2015-05-16 James Bowman <james.bowman@ftdichip.com>
* configure.ac: FT32 target added.
diff --git a/Makefile.in b/Makefile.in
index c221a0bae76..7ae2a40d4e3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -482,13 +482,12 @@ STAGEfeedback_TFLAGS = $(STAGE_TFLAGS)
STAGEfeedback_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)
-# Only build the C compiler for stage1, because that is the only one that
-# we can guarantee will build with the native compiler, and also it is the
-# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS),
-# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
-# overrideable (for a bootstrap build stage1 also builds gcc.info).
+# By default, C and C++ are the only stage1 languages, because they are the
+# only ones we require to build with the bootstrap compiler, and also the
+# only ones useful for building stage2.
STAGE1_CFLAGS = @stage1_cflags@
+STAGE1_CXXFLAGS = @stage1_cxxflags@
STAGE1_CHECKING = @stage1_checking@
STAGE1_LANGUAGES = @stage1_languages@
# * We force-disable intermodule optimizations, even if
@@ -677,7 +676,9 @@ CXX_FOR_TARGET_FLAG_TO_PASS = \
$(shell if echo "$(CXX_FOR_TARGET)" | grep " -funconfigured-" > /dev/null; then :; else echo '"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"'; fi)
@endif target-libstdc++-v3
-# Flags to pass down to all sub-makes.
+# Flags to pass down to all sub-makes. STAGE*FLAGS,
+# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
+# overrideable (for a bootstrap build stage1 also builds gcc.info).
BASE_FLAGS_TO_PASS = \
"DESTDIR=$(DESTDIR)" \
"RPATH_ENVVAR=$(RPATH_ENVVAR)" \
diff --git a/Makefile.tpl b/Makefile.tpl
index ec53b59ce57..914196f0914 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -435,13 +435,12 @@ STAGE[+id+]_TFLAGS = $(STAGE_TFLAGS)
STAGE[+id+]_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)
[+ ENDFOR bootstrap-stage +]
-# Only build the C compiler for stage1, because that is the only one that
-# we can guarantee will build with the native compiler, and also it is the
-# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS),
-# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
-# overrideable (for a bootstrap build stage1 also builds gcc.info).
+# By default, C and C++ are the only stage1 languages, because they are the
+# only ones we require to build with the bootstrap compiler, and also the
+# only ones useful for building stage2.
STAGE1_CFLAGS = @stage1_cflags@
+STAGE1_CXXFLAGS = @stage1_cxxflags@
STAGE1_CHECKING = @stage1_checking@
STAGE1_LANGUAGES = @stage1_languages@
# * We force-disable intermodule optimizations, even if
@@ -579,7 +578,9 @@ CXX_FOR_TARGET_FLAG_TO_PASS = \
$(shell if echo "$(CXX_FOR_TARGET)" | grep " -funconfigured-" > /dev/null; then :; else echo '"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"'; fi)
@endif target-libstdc++-v3
-# Flags to pass down to all sub-makes.
+# Flags to pass down to all sub-makes. STAGE*FLAGS,
+# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
+# overrideable (for a bootstrap build stage1 also builds gcc.info).
BASE_FLAGS_TO_PASS =[+ FOR flags_to_pass +][+ IF optional +] \
"`echo '[+flag+]=$([+flag+])' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"[+ ELSE optional +] \
"[+flag+]=$([+flag+])"[+ ENDIF optional+][+ ENDFOR flags_to_pass +][+ FOR bootstrap-stage +] \
diff --git a/configure b/configure
index d8043298ad0..07aba3e460d 100755
--- a/configure
+++ b/configure
@@ -559,6 +559,7 @@ compare_exclusions
host_shared
stage2_werror_flag
stage1_checking
+stage1_cxxflags
stage1_cflags
MAINT
MAINTAINER_MODE_FALSE
@@ -14755,6 +14756,13 @@ case $build in
*) stage1_cflags="-g -J" ;;
esac ;;
esac
+stage1_cxxflags='$(STAGE1_CFLAGS)'
+if test "$GCC" = yes; then
+ # Build stage 1 in C++98 mode to ensure that a C++98 compiler can still
+ # start the bootstrap.
+ stage1_cxxflags="$stage1_cxxflags -std=c++98"
+fi
+
diff --git a/configure.ac b/configure.ac
index 4da04b76fdf..5808eda41aa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3476,8 +3476,15 @@ case $build in
*) stage1_cflags="-g -J" ;;
esac ;;
esac
+stage1_cxxflags='$(STAGE1_CFLAGS)'
+if test "$GCC" = yes; then
+ # Build stage 1 in C++98 mode to ensure that a C++98 compiler can still
+ # start the bootstrap.
+ stage1_cxxflags="$stage1_cxxflags -std=c++98"
+fi
AC_SUBST(stage1_cflags)
+AC_SUBST(stage1_cxxflags)
# Enable --enable-checking in stage1 of the compiler.
AC_ARG_ENABLE(stage1-checking,