From ffa28f3914ff402b3915f75e4fed86ac6fb1449d Mon Sep 17 00:00:00 2001
From: Paul Smith <psmith@gnu.org>
Date: Sun, 5 Feb 2023 10:22:13 -0500
Subject: [PATCH] [SV 63668] Use autoconf to detect the default C++ compiler

* configure.ac: Add AC_PROG_CXX to search for a C++ compiler.
(MAKE_CXX): Add the discovered compiler to config.h.
* src/default.c (default_variables): Use MAKE_CXX as the C++ compiler.
---
 configure.ac  |  2 ++
 src/default.c | 20 +++++++++++++-------
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/configure.ac b/configure.ac
index 67793e6e..8326c010 100644
--- a/configure.ac
+++ b/configure.ac
@@ -37,6 +37,8 @@ AM_INIT_AUTOMAKE([1.16.1 foreign -Werror -Wall])
 # Checks for programs.
 AC_USE_SYSTEM_EXTENSIONS
 AC_PROG_CC
+AC_PROG_CXX
+AC_DEFINE_UNQUOTED(MAKE_CXX, ["$CXX"], [Default C++ compiler.])
 
 # Configure gnulib
 gl_EARLY
diff --git a/src/default.c b/src/default.c
index 1082b41d..ffb5f98c 100644
--- a/src/default.c
+++ b/src/default.c
@@ -527,18 +527,24 @@ static const char *default_variables[] =
     "AS", "as",
 #ifdef GCC_IS_NATIVE
     "CC", "gcc",
-# ifdef __MSDOS__
-    "CXX", "gpp",       /* g++ is an invalid name on MSDOS */
-# else
-    "CXX", "gcc",
-# endif /* __MSDOS__ */
     "OBJC", "gcc",
 #else
     "CC", "cc",
-    "CXX", "g++",
     "OBJC", "cc",
 #endif
-
+#ifdef MAKE_CXX
+    "CXX", MAKE_CXX,
+#else
+# ifdef GCC_IS_NATIVE
+#  ifdef __MSDOS__
+    "CXX", "gpp",       /* g++ is an invalid name on MSDOS */
+#  else
+    "CXX", "gcc",
+#  endif /* __MSDOS__ */
+# else
+    "CXX", "g++",
+# endif
+#endif
     /* This expands to $(CO) $(COFLAGS) $< $@ if $@ does not exist,
        and to the empty string if $@ does exist.  */
     "CHECKOUT,v", "+$(if $(wildcard $@),,$(CO) $(COFLAGS) $< $@)",