From f8abd62b4cbdd132da8e6ceaefc337567487f0da Mon Sep 17 00:00:00 2001
From: Mick Jordan <mick.jordan@oracle.com>
Date: Thu, 16 Jun 2016 12:57:04 -0700
Subject: [PATCH] mx_fastr: add back modified version of sanitizeVmArgs; up
 date ci.hocon

---
 ci.hocon             |  2 +-
 mx.fastr/mx_fastr.py | 23 +++++++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/ci.hocon b/ci.hocon
index e6b407317c..85e43c748f 100644
--- a/ci.hocon
+++ b/ci.hocon
@@ -1,6 +1,6 @@
 java7 : {name : oraclejdk, version : "7",    platformspecific: true}
 #java8 : {name : oraclejdk, version : "8u66", platformspecific: true}
-java8 : {name : labsjdk, version : "8u92-jvmci-0.11", platformspecific: true}
+java8 : {name : labsjdk, version : "8u92-jvmci-0.14", platformspecific: true}
 
 common : {
   packages : {
diff --git a/mx.fastr/mx_fastr.py b/mx.fastr/mx_fastr.py
index 8680af8cf2..2a039579b4 100644
--- a/mx.fastr/mx_fastr.py
+++ b/mx.fastr/mx_fastr.py
@@ -94,10 +94,33 @@ def do_run_r(args, command, extraVmArgs=None, jdk=None, **kwargs):
     if extraVmArgs:
         vmArgs += extraVmArgs
 
+    vmArgs = _sanitize_vmArgs(jdk, vmArgs)
     if command:
         vmArgs.append(_command_class_dict[command.lower()])
     return mx.run_java(vmArgs + args, jdk=jdk, **kwargs)
 
+def _sanitize_vmArgs(jdk, vmArgs):
+    '''
+    jdk dependent analysis of vmArgs to remove those that are not appropriate for the
+    chosen jdk. It is easier to allow clients to set anything they want and filter them
+    out here.
+    '''
+    jvmci_jdk = jdk.tag == 'jvmci'
+    jvmci_disabled = '-XX:-EnableJVMCI' in vmArgs
+
+    xargs = []
+    i = 0
+    while i < len(vmArgs):
+        vmArg = vmArgs[i]
+        if vmArg != '-XX:-EnableJVMCI':
+            if 'graal' in vmArg or 'JVMCI' in vmArg:
+                if not jvmci_jdk or jvmci_disabled:
+                    i = i + 1
+                    continue
+        xargs.append(vmArg)
+        i = i + 1
+    return xargs
+
 def _graal_options(nocompile=False):
     if _mx_graal:
         result = ['-Dgraal.InliningDepthError=500', '-Dgraal.EscapeAnalysisIterations=3', '-XX:JVMCINMethodSizeLimit=1000000']
-- 
GitLab