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 <jos...@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 <aol...@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 @@ # <old...@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 jos...@codesourcery.com