There's no "good" place for this.  The description in Makefile.def that libitm 
uses c++ is only used insofar as the dependencies for libitm -- it's built 
after libstdc++ as the language support library.  If we put this into the 
toplevel configure.ac directly, we have to write a bunch of shell code which 
seems less than helpful.

Putting into gcc/cp/config-lang.in is a layering violation, it's true.  But 
until there's another instance that needs handling, it seems premature to build 
infrastructure to handle this.  And it's only one line after all...

Tested on x86_64-linux and committed.


r~
        PR bootstrap/51072
        * config-lang.in (target_libs): Include target-libitm.


diff --git a/gcc/cp/config-lang.in b/gcc/cp/config-lang.in
index 3ed3d8e..6f9b4c9 100644
--- a/gcc/cp/config-lang.in
+++ b/gcc/cp/config-lang.in
@@ -28,6 +28,9 @@ language="c++"
 
 compilers="cc1plus\$(exeext)"
 
-target_libs="target-libstdc++-v3"
+# ??? libitm is not a language support library like libstdc++, but it does
+# use c++, and this is the easiest way to have it be disabled if we don't
+# include c++ in the set of enabled languages.
+target_libs="target-libstdc++-v3 target-libitm"
 
 gtfiles="\$(srcdir)/cp/rtti.c \$(srcdir)/cp/mangle.c 
\$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h 
\$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c 
\$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c 
\$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.h 
\$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c 
\$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h 
\$(srcdir)/c-family/c-objc.h \$(srcdir)/c-family/c-lex.c 
\$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c 
\$(srcdir)/cp/class.c \$(srcdir)/cp/cp-objcp-common.c \$(srcdir)/cp/cp-lang.c 
\$(srcdir)/cp/except.c"

Reply via email to