changeset 20102:6e5df2d60fbd

mx: fix compliance check for EXTRA_JAVA_HOMES, add maximum JAVA_HOME version in mx_graal
author Gilles Duboscq <gilles.m.duboscq@oracle.com>
date Tue, 31 Mar 2015 14:35:17 +0200
parents 178814b064a7
children 7815c4d4a07f
files mx/mx_graal.py mxtool/mx.py
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mx/mx_graal.py	Tue Mar 31 14:12:23 2015 +0200
+++ b/mx/mx_graal.py	Tue Mar 31 14:35:17 2015 +0200
@@ -83,6 +83,9 @@
 
 _minVersion = mx.VersionSpec('1.8')
 
+# max version (first _unsupported_ version)
+_untilVersion = mx.VersionSpec('1.8.0_40')
+
 class JDKDeployedDist:
     def __init__(self, name, isExtension):
         self.name = name
@@ -2527,7 +2530,9 @@
 def mx_post_parse_cmd_line(opts):  #
     # TODO _minVersion check could probably be part of a Suite in mx?
     if mx.java().version < _minVersion:
-        mx.abort('Requires Java version ' + str(_minVersion) + ' or greater, got version ' + str(mx.java().version))
+        mx.abort('Requires Java version ' + str(_minVersion) + ' or greater for JAVA_HOME, got version ' + str(mx.java().version))
+    if mx.java().version >= _untilVersion:
+        mx.abort('Requires Java version strictly before ' + str(_untilVersion) + ' for JAVA_HOME, got version ' + str(mx.java().version))
 
     if _vmSourcesAvailable:
         if hasattr(opts, 'vm') and opts.vm is not None:
--- a/mxtool/mx.py	Tue Mar 31 14:12:23 2015 +0200
+++ b/mxtool/mx.py	Tue Mar 31 14:35:17 2015 +0200
@@ -1660,6 +1660,8 @@
     elif get_os() == 'linux':
         base = '/usr/lib/jvm'
         candidateJdks = [join(base, n) for n in os.listdir(base) if exists(join(base, n, 'jre/lib/rt.jar'))]
+        base = '/usr/java'
+        candidateJdks += [join(base, n) for n in os.listdir(base) if exists(join(base, n, 'jre/lib/rt.jar'))]
     elif get_os() == 'solaris':
         base = '/usr/jdk/instances'
         candidateJdks = [join(base, n) for n in os.listdir(base) if exists(join(base, n, 'jre/lib/rt.jar'))]
@@ -5331,7 +5333,7 @@
     if opts.extra_java_homes:
         for java_home in opts.extra_java_homes.split(os.pathsep):
             extraJdk = JavaConfig(java_home, opts.java_dbg_port)
-            if extraJdk > defaultJdk:
+            if extraJdk.javaCompliance > defaultJdk.javaCompliance:
                 abort('Secondary JDK ' + extraJdk.jdk + ' has higher compliance level than default JDK ' + defaultJdk.jdk)
             _java_homes.append(extraJdk)