public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [libphobos, build] Enable libphobos on Solaris 11/x86
@ 2019-01-29 12:44 Rainer Orth
  2019-02-18 22:44 ` Iain Buclaw
  0 siblings, 1 reply; 11+ messages in thread
From: Rainer Orth @ 2019-01-29 12:44 UTC (permalink / raw)
  To: gcc-patches; +Cc: Iain Buclaw

[-- Attachment #1: Type: text/plain, Size: 1437 bytes --]

With the set of libphobos Solaris patches just posted, it would become
possible to enable libphobos on Solaris 11/x86 by default.

This is what this patch does.  

* It uses a LIBPHOBOS_SUPPORTED variable both in toplevel configure and
  libphobos/configure.tgt, following what libvtv does.

* It's necessary to disable libphobos when Solaris as is in use: it has
  a relatively low line length limit of 10240 which is exceeded in a few
  libphobos files.

Bootstrapped without regressions on i386-pc-solaris2.11 (as and gas, gas
and gld, Solaris 11.3/11.4/11.5) on top of the previous set of patches.

Also tested manually that explicit
--enable-libphobos/--disable-libphobos give the desired results
(i.e. override the defaults).

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2019-01-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	toplevel:
	* configure.ac (enable_libphobos): Check LIBPHOBOS_SUPPORTED.
	* configure: Regenerate.

	libphobos:
	* configure.tgt (LIBPHOBOS_SUPPORTED): Default to no.
	Set to yes explicitly.
	(x86_64-*-solaris2.11* | i?86-*-solaris2.11*): Mark supported.
	* configure.ac (x86_64-*-solaris2.* | i?86-*-solaris2.*): Only
	mark supported with gas.
	(ENABLE_LIBPHOBOS): New conditional.
	* configure: Regenerate.
	* Makefile.am (SUBDIRS): Only set if ENABLE_LIBPHOBOS.
	* Makefile.in: Regenerate.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: sol11x86-libphobos-enable.patch --]
[-- Type: text/x-patch, Size: 3013 bytes --]

# HG changeset patch
# Parent  7943668e276d15b949fddd7723cb5213fb465977
Enable libphobos on Solaris 11/x86

diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -694,7 +694,7 @@ if test -d ${srcdir}/libphobos; then
 	AC_MSG_CHECKING([for libphobos support])
 	if (srcdir=${srcdir}/libphobos; \
 		. ${srcdir}/configure.tgt; \
-		test -n "$UNSUPPORTED")
+		test "$LIBPHOBOS_SUPPORTED" != "yes")
 	then
 	    AC_MSG_RESULT([no])
 	    noconfigdirs="$noconfigdirs target-libphobos"
diff --git a/libphobos/Makefile.am b/libphobos/Makefile.am
--- a/libphobos/Makefile.am
+++ b/libphobos/Makefile.am
@@ -15,7 +15,11 @@
 # along with GCC; see the file COPYING3.  If not see
 # <http://www.gnu.org/licenses/>.
 
-SUBDIRS = libdruntime src testsuite
+if ENABLE_LIBPHOBOS
+  SUBDIRS = libdruntime src testsuite
+else
+  SUBDIRS =
+endif
 
 ACLOCAL_AMFLAGS = -I . -I .. -I ../config
 
diff --git a/libphobos/configure.ac b/libphobos/configure.ac
--- a/libphobos/configure.ac
+++ b/libphobos/configure.ac
@@ -114,6 +114,42 @@ AC_SUBST(phobos_compiler_shared_flag)
 lt_prog_compiler_pic_D="$phobos_compiler_shared_flag"
 pic_mode='default'
 
+AC_MSG_CHECKING([for --enable-libphobos])
+AC_ARG_ENABLE(libphobos,
+  [AS_HELP_STRING([--enable-libphobos], [Enable libphobos])])
+AC_MSG_RESULT($enable_libphobos)
+
+# See if supported.
+unset LIBPHOBOS_SUPPORTED
+AC_MSG_CHECKING([for host support for libphobos])
+. ${srcdir}/configure.tgt
+case ${host} in
+  x86_64-*-solaris2.* | i?86-*-solaris2.*)
+    # libphobos doesn't compile with the Solaris/x86 assembler due to a
+    # relatively low linelength limit.
+    as_prog=`$CC -print-prog-name=as`
+    if test -n "$as_prog" && $as_prog -v /dev/null 2>&1 | grep GNU > /dev/null 2>&1; then
+      druntime_cv_use_gas=yes;
+    else
+      druntime_cv_use_gas=no;
+    fi
+    rm -f a.out
+    if test x$druntime_cv_use_gas = xno; then
+      LIBPHOBOS_SUPPORTED=no
+    fi
+    ;;
+esac
+AC_MSG_RESULT($LIBPHOBOS_SUPPORTED)
+
+# Decide if it's usable.
+case $LIBPHOBOS_SUPPORTED:$enable_libphobos in
+*:no)  use_libphobos=no  ;;
+*:yes) use_libphobos=yes ;;
+yes:*) use_libphobos=yes ;;
+*:*)   use_libphobos=no  ;;
+esac
+AM_CONDITIONAL(ENABLE_LIBPHOBOS, test x$use_libphobos = xyes)
+
 # Determine what GCC version number to use in filesystem paths.
 GCC_BASE_VER
 
diff --git a/libphobos/configure.tgt b/libphobos/configure.tgt
--- a/libphobos/configure.tgt
+++ b/libphobos/configure.tgt
@@ -21,16 +21,21 @@
 
 # Disable the libphobos or libdruntime components on untested or known
 # broken systems.  More targets shall be added after testing.
+LIBPHOBOS_SUPPORTED=no
 case "${target}" in
   arm*-*-linux*)
+	LIBPHOBOS_SUPPORTED=yes
 	;;
   mips*-*-linux*)
+	LIBPHOBOS_SUPPORTED=yes
 	;;
   x86_64-*-kfreebsd*-gnu | i?86-*-kfreebsd*-gnu)
+	LIBPHOBOS_SUPPORTED=yes
 	;;
   x86_64-*-linux* | i?86-*-linux*)
+	LIBPHOBOS_SUPPORTED=yes
 	;;
-  *)
-	UNSUPPORTED=1
+  x86_64-*-solaris2.11* | i?86-*-solaris2.11*)
+	LIBPHOBOS_SUPPORTED=yes
 	;;
 esac

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-05-07 11:42 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-29 12:44 [libphobos, build] Enable libphobos on Solaris 11/x86 Rainer Orth
2019-02-18 22:44 ` Iain Buclaw
2019-02-19  9:32   ` Rainer Orth
2019-02-19 12:38     ` Iain Buclaw
2019-02-19 12:58       ` Rainer Orth
2019-04-14 16:41         ` Iain Buclaw
2019-04-14 20:59           ` Rainer Orth
2019-05-07  8:15           ` Rainer Orth
2019-05-07  8:33             ` Iain Buclaw
2019-05-07 11:42               ` Rainer Orth
2019-04-14 11:02   ` Rainer Orth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).