changeset 2729:f327af93706b

PR1843: Fail early if there is no native HotSpot JIT & all other options are disabled 2014-06-12 Andrew John Hughes <gnu.andrew@member.fsf.org> PR1843: Fail early if there is no native HotSpot JIT & all other options are disabled * acinclude.m4: (IT_ENABLE_ZERO_BUILD): Depend on IT_HAS_NATIVE_HOTSPOT_PORT. Split out arch-dependent code into that macro. Make ENABLE_CACAO test more readable. (IT_ENABLE_CACAO): Handle enableval same as other macros so possible values are only ever yes or no. (IT_ENABLE_JAMVM): Likewise. (IT_HAS_NATIVE_HOTSPOT_PORT): Architecture detection split out from IT_ENABLE_ZERO_BUILD. Now sets has_native_hotspot_port for later reference. * configure.ac: Error out if there is no native HotSpot port and Zero (which implies Shark & ARM32 JIT), CACAO and JamVM are all disabled.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Fri, 13 Jun 2014 02:04:10 +0100
parents 2311a87279e8
children 86ec9bccfca9
files ChangeLog NEWS acinclude.m4 configure.ac
diffstat 4 files changed, 72 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jun 13 01:56:52 2014 +0100
+++ b/ChangeLog	Fri Jun 13 02:04:10 2014 +0100
@@ -1,3 +1,23 @@
+2014-06-12  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR1843: Fail early if there is no native HotSpot JIT
+	& all other options are disabled
+	* acinclude.m4:
+	(IT_ENABLE_ZERO_BUILD): Depend on
+	IT_HAS_NATIVE_HOTSPOT_PORT. Split out arch-dependent
+	code into that macro. Make ENABLE_CACAO test more
+	readable.
+	(IT_ENABLE_CACAO): Handle enableval same as other macros
+	so possible values are only ever yes or no.
+	(IT_ENABLE_JAMVM): Likewise.
+	(IT_HAS_NATIVE_HOTSPOT_PORT): Architecture detection
+	split out from IT_ENABLE_ZERO_BUILD. Now sets
+	has_native_hotspot_port for later reference.
+	* configure.ac:
+	Error out if there is no native HotSpot port and
+	Zero (which implies Shark & ARM32 JIT), CACAO and
+	JamVM are all disabled.
+
 2014-06-13  Andrew John Hughes  <gnu.andrew@member.fsf.org>
 
 	* javaws.desktop,
--- a/NEWS	Fri Jun 13 01:56:52 2014 +0100
+++ b/NEWS	Fri Jun 13 02:04:10 2014 +0100
@@ -289,6 +289,7 @@
   - PR1835: Missing file in backport of ppc64le JIT support
   - PR1839, G478960: Provide Infinality Support via fontconfig
   - PR729: GTKLookAndFeel should be the system look&feel on all GNU/Linux desktops
+  - PR1843: Fail early if there is no native HotSpot JIT & all other options are disabled
 * PPC & AIX port
   - Add AIX-specific build instructions to README-ppc.html
   - Added AIX as testing platform for more jtreg tests written in shell-script
--- a/acinclude.m4	Fri Jun 13 01:56:52 2014 +0100
+++ b/acinclude.m4	Fri Jun 13 02:04:10 2014 +0100
@@ -686,6 +686,7 @@
   AC_REQUIRE([IT_ENABLE_CACAO])
   AC_REQUIRE([IT_ENABLE_JAMVM])
   AC_REQUIRE([IT_ENABLE_SHARK])
+  AC_REQUIRE([IT_HAS_NATIVE_HOTSPOT_PORT])
   AC_MSG_CHECKING([whether to use the zero-assembler port])
   use_zero=no
   AC_ARG_ENABLE([zero],
@@ -704,25 +705,14 @@
   [
     if test "x${use_shark}" = "xyes"; then
       use_zero=yes;
-    else
-      case "${host_cpu}" in
-        aarch64) ;;
-        arm64) ;;
-        i?86) ;;
-        sparc) ;;
-        x86_64) ;;
-	powerpc64) ;;
-	powerpc64le) ;;
-        *)
-          if test "x${ENABLE_CACAO}" != xno || \
-	     test "x${ENABLE_JAMVM}" = xyes; then
-            use_zero=no
-          else
-            use_zero=yes
-          fi
-          ;;
-      esac
-    fi
+    else if test "x$has_native_hotspot_port" = "xno"; then
+      if test "x${ENABLE_CACAO}" = xyes || \
+         test "x${ENABLE_JAMVM}" = xyes; then
+           use_zero=no
+      else
+           use_zero=yes
+      fi
+    fi; fi
   ])
   AC_MSG_RESULT($use_zero)
   AM_CONDITIONAL(ZERO_BUILD, test "x${use_zero}" = xyes)
@@ -785,7 +775,14 @@
   AC_ARG_ENABLE([cacao],
 	      [AS_HELP_STRING(--enable-cacao,use CACAO as VM [[default=no]])],
   [
-    ENABLE_CACAO="${enableval}"
+    case "${enableval}" in
+      yes)
+        ENABLE_CACAO=yes
+        ;;
+      *)
+        ENABLE_CACAO=no
+        ;;
+    esac
   ],
   [
     ENABLE_CACAO=no
@@ -2240,7 +2237,14 @@
   AC_ARG_ENABLE([jamvm],
 	      [AS_HELP_STRING(--enable-jamvm,use JamVM as VM [[default=no]])],
   [
-    ENABLE_JAMVM="${enableval}"
+    case "${enableval}" in
+      yes)
+        ENABLE_JAMVM=yes
+        ;;
+      *)
+        ENABLE_JAMVM=no
+        ;;
+    esac
   ],
   [
     ENABLE_JAMVM=no
@@ -2787,6 +2791,23 @@
   AM_CONDITIONAL([ENABLE_JAVA_DEBUGINFO], test x"${enable_java_debuginfo}" = "xyes")
 ])
 
+AC_DEFUN_ONCE([IT_HAS_NATIVE_HOTSPOT_PORT],
+[
+  AC_MSG_CHECKING([if a native HotSpot port is available for this architecture])
+  has_native_hotspot_port=yes;
+  case "${host_cpu}" in
+    aarch64) ;;
+    arm64) ;;
+    i?86) ;;
+    sparc) ;;
+    x86_64) ;;
+    powerpc64) ;;
+    powerpc64le) ;;
+    *) has_native_hotspot_port=no;
+  esac
+  AC_MSG_RESULT([$has_native_hotspot_port])
+])
+
 AC_DEFUN_ONCE([IT_ENABLE_INFINALITY],
 [
   AC_REQUIRE([IT_CHECK_FOR_FONTCONFIG])
--- a/configure.ac	Fri Jun 13 01:56:52 2014 +0100
+++ b/configure.ac	Fri Jun 13 02:04:10 2014 +0100
@@ -434,4 +434,13 @@
 AC_SUBST(CONFIGURE_ARGS)
 CONFIGURE_ARGS="$ac_configure_args"
 
+# Sanity check; make sure we have a JVM
+if test "x$has_native_hotspot_port" = "xno" ; then
+  if test "x${use_zero}" = "xno" ; then
+    if test "x${ENABLE_CACAO}" = "xno" -a "x${ENABLE_JAMVM}" = "xno"; then
+      AC_MSG_ERROR([No native HotSpot port available for ${host_cpu} and all alternatives disabled.])
+    fi
+  fi
+fi
+
 AC_OUTPUT