changeset 22951:d74202a599fe

Support running Truffle using Graal on a JVMCI-enabled JDK9 image.
author Roland Schatz <roland.schatz@oracle.com>
date Thu, 05 Nov 2015 18:26:45 +0100
parents 16c3ddbe2ebc
children 1ba34f16d176
files mx.graal/mx_graal_9.py
diffstat 1 files changed, 21 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mx.graal/mx_graal_9.py	Fri Oct 16 16:32:02 2015 +0200
+++ b/mx.graal/mx_graal_9.py	Thu Nov 05 18:26:45 2015 +0100
@@ -42,7 +42,7 @@
 
 _suite = mx.suite('graal')
 
-_jdk = mx.get_jdk()
+_jdk = mx.get_jdk(tag='default')
 assert _jdk.javaCompliance >= "1.9"
 
 def isJVMCIEnabled(vm):
@@ -546,10 +546,29 @@
     cmd = [jdk.java] + ['-' + get_vm()] + jvmciModeArgs + args
     return mx.run(cmd, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd)
 
+_GRAAL_JVMCI_TAG = 'graal'
+
+class GraalJVMCI9JDKConfig(mx.JDKConfig):
+    def __init__(self, original):
+        self._original = original
+        mx.JDKConfig.__init__(self, original.home, tag=_GRAAL_JVMCI_TAG)
+
+    def run_java(self, args, **kwArgs):
+        run_java(self._original, args, **kwArgs)
+
+class GraalJDKFactory(mx.JDKFactory):
+    def getJDKConfig(self):
+        return GraalJVMCI9JDKConfig(_jdk)
+
+    def description(self):
+        return "JVMCI JDK with Graal"
+
+mx.addJDKFactory(_GRAAL_JVMCI_TAG, mx.JavaCompliance('9'), GraalJDKFactory())
+
 def run_vm(args, vm=None, nonZeroIsFatal=True, out=None, err=None, cwd=None, timeout=None, debugLevel=None, vmbuild=None):
     """run a Java program by executing the java executable in a JVMCI JDK"""
 
-    return run_java(mx.get_jdk(), args, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd, timeout=timeout)
+    return run_java(_jdk, args, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd, timeout=timeout)
 
 class GraalArchiveParticipant:
     def __init__(self, dist):