From 1bd1e21a69ee38a5c4e584b0c0ce739e8c8273ad Mon Sep 17 00:00:00 2001
From: Wilson Snyder <wsnyder@wsnyder.org>
Date: Sat, 11 Jul 2020 08:56:40 -0400
Subject: [PATCH] Change --enable-prec11 to --enable-prec11-final and give
 stronger warning

---
 Changes       |  3 +++
 bin/verilator |  8 ++++----
 configure.ac  | 17 ++++++++---------
 3 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/Changes b/Changes
index eb0f0c933..dfa4b629e 100644
--- a/Changes
+++ b/Changes
@@ -5,6 +5,9 @@ The contributors that suggested a given feature are shown in []. Thanks!
 
 * Verilator 4.037 devel
 
+**    Versions 4.038 and 4.040 are planned to be the final versions that will
+      support pre-C++11 compilers. Please move to C++11 or newer compilers.
+
 ***   Support VPI access to parameters and localparam. [Ludwig Rogiers]
 
 ***   Support parsing (not elaboration, yet) of UVM.
diff --git a/bin/verilator b/bin/verilator
index 091c92593..83712deca 100755
--- a/bin/verilator
+++ b/bin/verilator
@@ -4935,14 +4935,14 @@ The following deprecated items are scheduled for future removal:
 =item Pre-C++11 compiler support
 
 Verilator supports pre-C++11 compilers for non-threaded models when
-configured with --enable-prec11.  This flag will be removed and C++11
-compilers will be required for both compiling Verilator and compiling
-Verilated models no sooner than September 2020.
+configured with --enable-prec11/--enable-prec11-final.  This flag will be
+removed and C++11 compilers will be required for both compiling Verilator
+and compiling Verilated models no sooner than September 2020.
 
 =item SystemC 2.2 and earlier support
 
 Support for SystemC versions 2.2 and earlier including the related sc_clock
-variable attribute will be removed no sooner than August 2020.  The
+variable attribute will be removed no sooner than September 2020.  The
 supported versions will be SystemC 2.3.0 (SYSTEMC_VERSION 20111121) and
 later (presently 2.3.0, 2.3.1, 2.3.2, 2.3.3).
 
diff --git a/configure.ac b/configure.ac
index 011df9ad4..01a24da15 100644
--- a/configure.ac
+++ b/configure.ac
@@ -114,14 +114,14 @@ AC_MSG_RESULT($CFG_WITH_LONGTESTS)
 
 # CFG_WITH_PREC11
 AC_MSG_CHECKING(whether allow pre-C++11)
-AC_ARG_ENABLE([prec11],
-              [AS_HELP_STRING([--enable-prec11],
+AC_ARG_ENABLE([prec11-final],
+              [AS_HELP_STRING([--enable-prec11-final],
                               [enable pre-C++11 compilers for Verilator binary
                                and Verilated makefiles])],
               [case "${enableval}" in
                 yes) CFG_WITH_PREC11=yes ;;
                 no)  CFG_WITH_PREC11=no ;;
-                *)   AC_MSG_ERROR([bad value ${enableval} for --enable-prec11]) ;;
+                *)   AC_MSG_ERROR([bad value ${enableval} for --enable-prec11-final]) ;;
                esac],
               [CFG_WITH_PREC11=no;]
               )
@@ -433,12 +433,11 @@ if test "$CFG_WITH_THREADED" = "no" ; then
       AC_MSG_NOTICE([[]])
       AC_MSG_ERROR([[the $CXX compiler appears to not support C++11.
 
-Verilator plans to require a C++11 or newer compiler in a future release,
-unless sufficient people report problems. Therefore, if you do not have a
-C++11 compiler, please post a message to
-https://www.veripool.org/boards/3/topics/2580-Verilator-Requiring-C-11-compiler
-indicating your OS and when you think C++11 might be ok, and then rerun
-configure with the --enable-prec11 argument. Thanks.]])
+Verilator will require a C++11 or newer compiler for all releases starting
+September 2020.  Please investigate a C++11 build environment now so you
+will be ready.  Until then you may rerun configure with the
+--enable-prec11-final argument to enable reduced functionality with such
+older compilers. Thanks.]])
 
    fi
 fi