Toplevel cleanup: disable Java when libffi not supported

Joseph S. Myers joseph@codesourcery.com
Wed Apr 27 16:34:00 GMT 2011


This patch, relative to a tree with
<http://gcc.gnu.org/ml/gcc-patches/2011-04/msg02123.html> applied,
continues the cleanup of toplevel cases relating to disabling Java or
Java libraries by arranging for Java to be disabled (via
unsupported_languages) on targets not supporting libffi, and removing
many cases in the Java-disabling case statement that are no longer
needed, either because they relate to targets not supporting libffi or
because they relate to targets no longer supported in GCC so it
doesn't matter what the Java configuration is for them.

The ideal would be for information about libffi-supported targets to
come from a configure fragment in the libffi/ directory, as per item 4
in <http://gcc.gnu.org/ml/gcc/2011-03/msg00486.html>.  Given that at
present there is some divergence between the libffi repository and the
GCC copy of libffi, however, now may not be the best time to add such
a fragment in GCC; instead, I put a minimal case statement (covering
only targets supported by both libffi and GCC) at toplevel.

Where Java-disabling-related cases did more than just disabling Java
or ${libgcj} (for example, explicitly disabling target-boehm-gc or
target-libffi) I left them in for now even if not strictly needed with
the separate libffi case statement.

This patch is intended to be safe, in that the only way it should
change behavior for targets supported by GCC is to disable Java in
some cases where the libraries would not build because of lack of
libffi support (whether or not the libraries and front end were
previously enabled in such cases).

OK to commit?

2011-04-27  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Disable Java for targets not supporting libffi.
	(*-*-kaos*, am33_2.0-*-linux*, sh*-*-pe|mips*-*-pe): Remove cases
	in Java-disabling statement.
	(*arm-wince-pe): Change to arm-wince-pe.
	(arc-*-*, arm-*-coff, arm-*-pe*, arm-*-riscix*, avr-*-*): Remove
	cases in Java-disabling statement.
	(bfin-*-*): Don't disable Java again.
	(c4x-*-* | tic4x-*-*, tic54x-*-*, cr16-*-*, d10v-*-*, d30v-*-*,
	fr30-*-elf*, moxie-*-*, h8300*-*-*, h8500-*-*, hppa1.1-*-osf* |
	hppa1.1-*-bsd*, hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-openbsd*,
	hppa*-*-pro*, i960-*-*, i[[3456789]]86-*-coff,
	i[[3456789]]86-*-pe, i[[3456789]]86-*-sco3.2v5*,
	i[[3456789]]86-*-sco*, i[[3456789]]86-*-sysv4*,
	i[[3456789]]86-*-beos*, i[[3456789]]86-*-rdos*,
	m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*): Remove cases in
	Java-disabling statement.
	(mmix-*-*): Don't disable Java again.
	(mt-*-*, powerpc*-*-winnt* | powerpc*-*-pe*, powerpcle-*-solaris*,
	powerpc-*-beos*, rs6000-*-lynxos*, rs6000-*-*, m68k-apollo-*,
	microblaze*, mips*-sde-elf*, mips*-*-irix5*, mips*-*-bsd*,
	sparclet-*-aout* | sparc86x-*-*, sparclite-*-*, sparc-*-sunos4*,
	tic6x-*-*, v810-*-*, vax-*-*): Remove cases in Java-disabling
	statement.
	* configure: Regenerate.

--- configure.ac	2011-04-27 15:22:59.000000000 +0000
+++ configure.ac.new	2011-04-27 16:12:46.000000000 +0000
@@ -558,10 +558,61 @@
     ;;
 esac
 
-# Disable Java, libgcj or related libraries for some systems.
+# Disable Java if libffi is not supported.
 case "${target}" in
-  *-*-chorusos)
+  alpha*-*-*)
+    ;;
+  arm*-*-*)
+    ;;
+  cris-*-*)
+    ;;
+  frv-*-*)
+    ;;
+  hppa*-*-linux*)
+    ;;
+  hppa*-*-hpux*)
+    ;;
+  i?86-*-*)
+    ;;
+  ia64*-*-*)
+    ;;
+  m32r*-*-*)
+    ;;
+  m68k-*-*)
+    ;;
+  mips-sgi-irix6.* | mips*-*-rtems*)
+    ;;
+  mips*-*-linux*)
+    ;;
+  powerpc*-*-linux*)
+    ;;
+  powerpc-*-darwin*)
+    ;;
+  powerpc-*-aix* | rs6000-*-aix*)
+    ;;
+  powerpc-*-freebsd*)
+    ;;
+  powerpc64-*-freebsd*)
+    ;;
+  powerpc*-*-rtems*)
     ;;
+  s390-*-* | s390x-*-*)
+    ;;
+  sh-*-* | sh[[34]]*-*-*)
+    ;;
+  sh64-*-* | sh5*-*-*)
+    ;;
+  sparc*-*-*)
+    ;;
+  x86_64-*-*)
+    ;;
+  *-*-*)
+    unsupported_languages="$unsupported_languages java"
+    ;;
+esac
+
+# Disable Java, libgcj or related libraries for some systems.
+case "${target}" in
   powerpc-*-darwin*)
     ;;
   i[[3456789]]86-*-darwin*)
@@ -584,8 +635,6 @@
 	;;
     esac
     ;;
-  *-*-kaos*)
-    ;;
   *-*-netbsd*)
     # Skip some stuff that's unsupported on some NetBSD configurations.
     case "${target}" in
@@ -621,19 +670,12 @@
   alpha*-*-*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  am33_2.0-*-linux*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
   sh-*-linux*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;    
-  sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+  arm-wince-pe)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  arc-*-*)
-    ;;
-  arm-*-coff)
-    ;;
   arm-*-elf* | arm*-*-eabi* )
     noconfigdirs="$noconfigdirs target-libffi"
     ;;
@@ -642,25 +684,9 @@
   arm*-*-symbianelf*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  arm-*-pe*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  arm-*-riscix*)
-    ;;
-  avr-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
   bfin-*-*)
-    unsupported_languages="$unsupported_languages java"
     noconfigdirs="$noconfigdirs target-boehm-gc"
     ;;
-  c4x-*-* | tic4x-*-*)
-    ;;
-  tic54x-*-*)
-    ;;
-  cr16-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
   cris-*-* | crisv32-*-*)
     unsupported_languages="$unsupported_languages java"
     case "${target}" in
@@ -670,26 +696,9 @@
 	noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
     esac
     ;;
-  d10v-*-*)
-    ;;
-  d30v-*-*)
-    ;;
-  fr30-*-elf*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
   frv-*-*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  moxie-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  h8300*-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  h8500-*-*)
-    ;;
-  hppa1.1-*-osf* | hppa1.1-*-bsd* )
-    ;;
   hppa*64*-*-linux*)
     # In this case, it's because the hppa64-linux target is for
     # the kernel only at this point and has no libc, and thus no
@@ -698,23 +707,16 @@
     ;;
   hppa*-*-linux*)
     ;;
-  hppa*-*-*elf* | \
-  hppa*-*-lites* | \
-  hppa*-*-openbsd* | \
   hppa*64*-*-*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
   hppa*-hp-hpux11*)
     ;;
-  hppa*-*-pro*)
-    ;;
   hppa*-*-*)
     # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
     # build on HP-UX 10.20.
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  i960-*-*)
-    ;;
   ia64*-*-elf*)
     ;;
   ia64*-**-hpux*)
@@ -722,7 +724,7 @@
   ia64*-*-*vms*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
+  i[[3456789]]86-*-elf)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
   i[[3456789]]86-*-linux*)
@@ -740,25 +742,11 @@
     ;;
   i[[3456789]]86-*-interix* )
     ;;
-  i[[3456789]]86-*-pe)
-    ;;
-  i[[3456789]]86-*-sco3.2v5*)
-    ;;
-  i[[3456789]]86-*-sco*)
-    ;;
   i[[3456789]]86-*-solaris2*)
     ;;
-  i[[3456789]]86-*-sysv4*)
-    ;;
-  i[[3456789]]86-*-beos*)
-    ;;
-  i[[3456789]]86-*-rdos*)
-    ;;
   m32r-*-*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
-    ;;
   m68k-*-elf*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
@@ -766,44 +754,19 @@
     ;;
   mmix-*-*)
     noconfigdirs="$noconfigdirs target-libffi target-boehm-gc"
-    unsupported_languages="$unsupported_languages java"
-    ;;
-  mt-*-*)
     ;;
   powerpc-*-aix*)
     # copied from rs6000-*-* entry
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  powerpc*-*-winnt* | powerpc*-*-pe*)
-    ;;
-  powerpcle-*-solaris*)
-    ;;
-  powerpc-*-beos*)
-    ;;
   powerpc-*-eabi)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
   powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
     ;;
-  rs6000-*-lynxos*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
   rs6000-*-aix*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  rs6000-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  m68k-apollo-*)
-    ;;
-  microblaze*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  mips*-sde-elf*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  mips*-*-irix5*)
-    ;;
   mips*-*-irix6*)
     # Linking libjava exceeds command-line length limits on at least
     # IRIX 6.2, but not on IRIX 6.5.
@@ -811,8 +774,6 @@
     # <oldham@codesourcery.com>
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  mips*-*-bsd*)
-    ;;
   mips*-*-linux*)
     ;;
   mips*-*-*)
@@ -821,28 +782,14 @@
   sh-*-* | sh64-*-*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  sparclet-*-aout* | sparc86x-*-*)
-    ;;
   sparc-*-elf*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
   sparc64-*-elf*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  sparclite-*-*)
-    ;;
-  sparc-*-sunos4*)
-    ;;
   sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
     ;;
-  tic6x-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  v810-*-*)
-    ;;
-  vax-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
   *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
     ;;
   *-*-lynxos*)

-- 
Joseph S. Myers
joseph@codesourcery.com



More information about the Java-patches mailing list