Hi,
This turns off D front-end where there's been reported bootstrap
problems that need further investigation. Also added a configure.tgt
for libphobos to allow enabling for targets where there's known good
runtime support backed by existing continuous integration.
For both, this can be overridden if either D or libphobos was
explicitly requested by configure.
The guards will be loosened as I go through each target configuration.
--
Iain
---
ChangeLog:
2018-10-30 Iain Buclaw <[email protected]>
PR bootstrap/87788
PR d/87799
* configure: Rebuild.
* configure.ac: Disable D on systems where it is known not to work.
libphobos/ChangeLog:
2018-10-30 Iain Buclaw <[email protected]>
PR bootstrap/87789
PR d/87818
PR d/87819
* configure.tgt: New file.
---
diff --git a/configure b/configure
index 77e7e1869ba..20741aef7e3 100755
--- a/configure
+++ b/configure
@@ -3345,6 +3345,40 @@ if test "${ENABLE_LIBSTDCXX}" = "default" ; then
esac
fi
+# Disable D on systems where it is known to not work.
+# For testing, you can override this with --enable-languages=d.
+case ,${enable_languages}, in
+ *,d,*)
+ ;;
+ *)
+ case "${target}" in
+ *-*-darwin* | *-*-cygwin* | *-*-mingw*)
+ unsupported_languages="$unsupported_languages d"
+ ;;
+ esac
+ ;;
+esac
+
+# Disable libphobos on unsupported systems.
+# For testing, you can override this with --enable-libphobos.
+if test -d ${srcdir}/libphobos; then
+ if test x$enable_libphobos = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libphobos support" >&5
+$as_echo_n "checking for libphobos support... " >&6; }
+ if (srcdir=${srcdir}/libphobos; \
+ . ${srcdir}/configure.tgt; \
+ test -n "$UNSUPPORTED")
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ noconfigdirs="$noconfigdirs target-libphobos"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ fi
+ fi
+fi
+
# Disable Fortran for some systems.
case "${target}" in
mmix-*-*)
diff --git a/configure.ac b/configure.ac
index 1e5979dc043..b10212b3be5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -674,6 +674,37 @@ if test "${ENABLE_LIBSTDCXX}" = "default" ; then
esac
fi
+# Disable D on systems where it is known to not work.
+# For testing, you can override this with --enable-languages=d.
+case ,${enable_languages}, in
+ *,d,*)
+ ;;
+ *)
+ case "${target}" in
+ *-*-darwin* | *-*-cygwin* | *-*-mingw*)
+ unsupported_languages="$unsupported_languages d"
+ ;;
+ esac
+ ;;
+esac
+
+# Disable libphobos on unsupported systems.
+# For testing, you can override this with --enable-libphobos.
+if test -d ${srcdir}/libphobos; then
+ if test x$enable_libphobos = x; then
+ AC_MSG_CHECKING([for libphobos support])
+ if (srcdir=${srcdir}/libphobos; \
+ . ${srcdir}/configure.tgt; \
+ test -n "$UNSUPPORTED")
+ then
+ AC_MSG_RESULT([no])
+ noconfigdirs="$noconfigdirs target-libphobos"
+ else
+ AC_MSG_RESULT([yes])
+ fi
+ fi
+fi
+
# Disable Fortran for some systems.
case "${target}" in
mmix-*-*)
diff --git a/libphobos/configure.tgt b/libphobos/configure.tgt
new file mode 100644
index 00000000000..8afd350c755
--- /dev/null
+++ b/libphobos/configure.tgt
@@ -0,0 +1,36 @@
+# -*- shell-script -*-
+# Copyright (C) 2018 Free Software Foundation, Inc.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# This is the target specific configuration file. This is invoked by the
+# autoconf generated configure script. Putting it in a separate shell file
+# lets us skip running autoconf when modifying target specific information.
+
+# Disable the libphobos or libdruntime components on untested or known
+# broken systems. More targets shall be added after testing.
+case "${target}" in
+ arm*-*-linux*)
+ ;;
+ mips*-*-linux*)
+ ;;
+ x86_64-*-kfreebsd*-gnu | i?86-*-kfreebsd*-gnu)
+ ;;
+ x86_64-*-linux* | i?86-*-linux*)
+ ;;
+ *)
+ UNSUPPORTED=1
+ ;;
+esac