Mercurial > hg > graal-jvmci-8
annotate mx.jvmci/mx_jvmci.py @ 24137:6523380966cd
Merge.
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 19 May 2017 14:05:50 +0200 |
parents | a8e0d0625b32 |
children | 96668c601751 |
rev | line source |
---|---|
3718 | 1 # |
2 # ---------------------------------------------------------------------------------------------------- | |
3 # | |
18897
9afee75cee46
mx: add microbench command to run JMH benchmarks
Roland Schatz <roland.schatz@oracle.com>
parents:
18894
diff
changeset
|
4 # Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. |
3718 | 5 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
6 # | |
7 # This code is free software; you can redistribute it and/or modify it | |
8 # under the terms of the GNU General Public License version 2 only, as | |
9 # published by the Free Software Foundation. | |
10 # | |
11 # This code is distributed in the hope that it will be useful, but WITHOUT | |
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
14 # version 2 for more details (a copy is included in the LICENSE file that | |
15 # accompanied this code). | |
16 # | |
17 # You should have received a copy of the GNU General Public License version | |
18 # 2 along with this work; if not, write to the Free Software Foundation, | |
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
20 # | |
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
22 # or visit www.oracle.com if you need additional information or have any | |
23 # questions. | |
24 # | |
25 # ---------------------------------------------------------------------------------------------------- | |
26 | |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
27 import os, stat, errno, sys, shutil, zipfile, tarfile, tempfile, re, time, datetime, platform, subprocess, socket |
23332
d5690e838afa
mx: remove makejmhdeps buildjmh and jmh.
Josef Eisl <josef.eisl@jku.at>
parents:
23331
diff
changeset
|
28 from os.path import join, exists, basename |
22020
36a7ec14279d
moved unit test support from mx_graal.py to mx.py
Doug Simon <doug.simon@oracle.com>
parents:
22019
diff
changeset
|
29 from argparse import ArgumentParser, REMAINDER |
13472
72e2ec923b7b
added support to replace NetBeans platform used by IGV if it is out of date (GRAAL-420)
Doug Simon <doug.simon@oracle.com>
parents:
13471
diff
changeset
|
30 import xml.dom.minidom |
9116
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
31 import json, textwrap |
22693
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
32 from collections import OrderedDict |
22031
434fbaaf53d7
moved findbugs support from mx_graal.py to mx_findbugs.py
Doug Simon <doug.simon@oracle.com>
parents:
22024
diff
changeset
|
33 |
434fbaaf53d7
moved findbugs support from mx_graal.py to mx_findbugs.py
Doug Simon <doug.simon@oracle.com>
parents:
22024
diff
changeset
|
34 import mx |
434fbaaf53d7
moved findbugs support from mx_graal.py to mx_findbugs.py
Doug Simon <doug.simon@oracle.com>
parents:
22024
diff
changeset
|
35 import mx_unittest |
22274
ed0b8310ac56
import unittest from mx_unittest.py
Doug Simon <doug.simon@oracle.com>
parents:
22273
diff
changeset
|
36 from mx_unittest import unittest |
22286
2ecfec90e51e
moved gate from mx_jvmci.py to mx_gate.py in core mx
Doug Simon <doug.simon@oracle.com>
parents:
22284
diff
changeset
|
37 from mx_gate import Task |
2ecfec90e51e
moved gate from mx_jvmci.py to mx_gate.py in core mx
Doug Simon <doug.simon@oracle.com>
parents:
22284
diff
changeset
|
38 import mx_gate |
3718 | 39 |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
40 _suite = mx.suite('jvmci') |
4417
648a7873cea2
Made it possible to build and run the client and server VM with a new '--vm' option to 'mx build' and a global option of the same name.
Doug Simon <doug.simon@oracle.com>
parents:
4407
diff
changeset
|
41 |
22777
781e01df3c4c
added JVMCI_VERSION constant
Doug Simon <doug.simon@oracle.com>
parents:
22771
diff
changeset
|
42 JVMCI_VERSION = 8 |
781e01df3c4c
added JVMCI_VERSION constant
Doug Simon <doug.simon@oracle.com>
parents:
22771
diff
changeset
|
43 |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
44 """ The VMs that can be built and run along with an optional description. Only VMs with a |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
45 description are listed in the dialogue for setting the default VM (see get_vm()). """ |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
46 _vmChoices = { |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
47 'server' : 'Normal compilation is performed with a tiered system (C1 + C2 or Graal) and Graal is available for hosted compilation.', |
22099
10b08d53b060
removed TRUFFLE distribution - only use TRUFFLE library
Doug Simon <doug.simon@oracle.com>
parents:
22096
diff
changeset
|
48 'client' : None, # VM compilation with client compiler, hosted compilation with Graal |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
49 'original' : None, # default VM copied from bootstrap JDK |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
50 } |
9095
d538dce8f403
support for non-GRAAL VMs co-existing with GRAAL VMs
Doug Simon <doug.simon@oracle.com>
parents:
9010
diff
changeset
|
51 |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
52 _jvmciModes = { |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
53 'hosted' : ['-XX:+UnlockExperimentalVMOptions', '-XX:+EnableJVMCI'], |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
54 'jit' : ['-XX:+UnlockExperimentalVMOptions', '-XX:+EnableJVMCI', '-XX:+UseJVMCICompiler'], |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
55 'disabled' : ['-XX:+UnlockExperimentalVMOptions', '-XX:-EnableJVMCI'] |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
56 } |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
57 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
58 # Aliases for legacy VM names |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
59 _vmAliases = { |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
60 'jvmci' : 'server', |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
61 'graal' : 'server', |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
62 } |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
63 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
64 _JVMCI_JDK_TAG = 'jvmci' |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
65 |
9095
d538dce8f403
support for non-GRAAL VMs co-existing with GRAAL VMs
Doug Simon <doug.simon@oracle.com>
parents:
9010
diff
changeset
|
66 """ The VM that will be run by the 'vm' command and built by default by the 'build' command. |
23711
387870951564
Remove old DEFAULT_VM machinery
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23679
diff
changeset
|
67 It can be temporarily set by using a VM context manager object in a 'with' statement. """ |
387870951564
Remove old DEFAULT_VM machinery
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23679
diff
changeset
|
68 _vm = 'server' |
4417
648a7873cea2
Made it possible to build and run the client and server VM with a new '--vm' option to 'mx build' and a global option of the same name.
Doug Simon <doug.simon@oracle.com>
parents:
4407
diff
changeset
|
69 |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
70 class JVMCIMode: |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
71 def __init__(self, jvmciMode): |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
72 self.jvmciMode = jvmciMode |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
73 self.vmArgs = _jvmciModes[jvmciMode] |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
74 |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
75 def __enter__(self): |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
76 global _jvmciMode |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
77 self.previousMode = _jvmciMode |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
78 _jvmciMode = self |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
79 |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
80 def __exit__(self, exc_type, exc_value, traceback): |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
81 global _jvmciMode |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
82 _jvmciMode = self.previousMode |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
83 |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
84 """ The JVMCI mode that will be used by the 'vm' command. This can be set with the global '-M' option. |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
85 It can also be temporarily set using the JVMCIMode context manager object in a 'with' statement. |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
86 Defaults to 'hosted'. """ |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
87 _jvmciMode = JVMCIMode('hosted') |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
88 |
9095
d538dce8f403
support for non-GRAAL VMs co-existing with GRAAL VMs
Doug Simon <doug.simon@oracle.com>
parents:
9010
diff
changeset
|
89 """ The VM builds that will be run by the 'vm' command - default is first in list """ |
9157
a38d748d4130
Add support for the 'optimized' build in mx
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
9130
diff
changeset
|
90 _vmbuildChoices = ['product', 'fastdebug', 'debug', 'optimized'] |
9095
d538dce8f403
support for non-GRAAL VMs co-existing with GRAAL VMs
Doug Simon <doug.simon@oracle.com>
parents:
9010
diff
changeset
|
91 |
d538dce8f403
support for non-GRAAL VMs co-existing with GRAAL VMs
Doug Simon <doug.simon@oracle.com>
parents:
9010
diff
changeset
|
92 """ The VM build that will be run by the 'vm' command. |
11371
74414b248381
mx: added --vmbuild global option, removed --product, --fastdebug, --debug options as well as suffix of build command
Doug Simon <doug.simon@oracle.com>
parents:
11368
diff
changeset
|
93 This can be set via the global '--vmbuild' option. |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
94 It can also be temporarily set by using of a VM context manager object in a 'with' statement. """ |
9095
d538dce8f403
support for non-GRAAL VMs co-existing with GRAAL VMs
Doug Simon <doug.simon@oracle.com>
parents:
9010
diff
changeset
|
95 _vmbuild = _vmbuildChoices[0] |
3718 | 96 |
11401
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
97 """ The current working directory to switch to before running the VM. """ |
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
98 _vm_cwd = None |
10454
590b0c26877f
mx: add --workdir argument
Bernhard Urban <bernhard.urban@jku.at>
parents:
10417
diff
changeset
|
99 |
11401
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
100 """ The base directory in which the JDKs cloned from $JAVA_HOME exist. """ |
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
101 _installed_jdks = None |
10570
2f80624df8a2
Add a --vmdir argument to mx
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
10568
diff
changeset
|
102 |
11401
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
103 """ Prefix for running the VM. """ |
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
104 _vm_prefix = None |
5875
000fb0550afe
Add an option to launch the vm from a debugger in mx's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5871
diff
changeset
|
105 |
5194
a6eceb5efb0e
added --ecl option to mx for saving VM execution(s) as Eclipse launch configurations
Doug Simon <doug.simon@oracle.com>
parents:
5189
diff
changeset
|
106 _make_eclipse_launch = False |
a6eceb5efb0e
added --ecl option to mx for saving VM execution(s) as Eclipse launch configurations
Doug Simon <doug.simon@oracle.com>
parents:
5189
diff
changeset
|
107 |
24099
955ebad35cba
bump min jdk version to 8u121
Doug Simon <doug.simon@oracle.com>
parents:
23993
diff
changeset
|
108 _minVersion = mx.VersionSpec('1.8.0_121') |
7916
9bff64f43299
Better java version numbers support in mx
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
7788
diff
changeset
|
109 |
20102
6e5df2d60fbd
mx: fix compliance check for EXTRA_JAVA_HOMES, add maximum JAVA_HOME version in mx_graal
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
20032
diff
changeset
|
110 # max version (first _unsupported_ version) |
23978
f553add9342f
Update and fix JDK version checks
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
23711
diff
changeset
|
111 _untilVersion = mx.VersionSpec('1.9') |
20102
6e5df2d60fbd
mx: fix compliance check for EXTRA_JAVA_HOMES, add maximum JAVA_HOME version in mx_graal
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
20032
diff
changeset
|
112 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
113 class JDKDeployedDist(object): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
114 def __init__(self, name): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
115 self._name = name |
22143
616739e61fb6
changed JDKDeployedDist.postJdkInstall to be an overridable method
Doug Simon <doug.simon@oracle.com>
parents:
22142
diff
changeset
|
116 |
616739e61fb6
changed JDKDeployedDist.postJdkInstall to be an overridable method
Doug Simon <doug.simon@oracle.com>
parents:
22142
diff
changeset
|
117 def dist(self): |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
118 return mx.distribution(self._name) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
119 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
120 def deploy(self, jdkDir): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
121 mx.nyi('deploy', self) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
122 |
22761
f2206f5bb62e
removed @ServiceProvider mechanism (GRAAL-1380)
Doug Simon <doug.simon@oracle.com>
parents:
22758
diff
changeset
|
123 def post_parse_cmd_line(self): |
f2206f5bb62e
removed @ServiceProvider mechanism (GRAAL-1380)
Doug Simon <doug.simon@oracle.com>
parents:
22758
diff
changeset
|
124 def _install(d): |
f2206f5bb62e
removed @ServiceProvider mechanism (GRAAL-1380)
Doug Simon <doug.simon@oracle.com>
parents:
22758
diff
changeset
|
125 _installDistInJdks(self) |
f2206f5bb62e
removed @ServiceProvider mechanism (GRAAL-1380)
Doug Simon <doug.simon@oracle.com>
parents:
22758
diff
changeset
|
126 self.dist().add_update_listener(_install) |
f2206f5bb62e
removed @ServiceProvider mechanism (GRAAL-1380)
Doug Simon <doug.simon@oracle.com>
parents:
22758
diff
changeset
|
127 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
128 class JarJDKDeployedDist(JDKDeployedDist): |
23408
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
129 def __init__(self, name): |
22287
5cce6c398d70
re-introduced partOfHotSpot to JarJDKDeployedDist to fix mx_jvmci_makefile.py
Doug Simon <doug.simon@oracle.com>
parents:
22286
diff
changeset
|
130 JDKDeployedDist.__init__(self, name) |
5cce6c398d70
re-introduced partOfHotSpot to JarJDKDeployedDist to fix mx_jvmci_makefile.py
Doug Simon <doug.simon@oracle.com>
parents:
22286
diff
changeset
|
131 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
132 def targetDir(self): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
133 mx.nyi('targetDir', self) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
134 |
22616
8a837db73b92
Remove source deployment.
Christian Humer <christian.humer@oracle.com>
parents:
22614
diff
changeset
|
135 def _copyToJdk(self, jdkDir, target): |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
136 targetDir = join(jdkDir, target) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
137 dist = self.dist() |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
138 mx.logv('Deploying {} to {}'.format(dist.name, targetDir)) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
139 copyToJdk(dist.path, targetDir) |
23408
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
140 if exists(dist.sourcesPath): |
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
141 copyToJdk(dist.sourcesPath, targetDir) |
22452
b6fd47c5dc0b
Add ability to define a source target folder for distribution deployments.
Christian Humer <christian.humer@oracle.com>
parents:
22438
diff
changeset
|
142 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
143 def deploy(self, jdkDir): |
22616
8a837db73b92
Remove source deployment.
Christian Humer <christian.humer@oracle.com>
parents:
22614
diff
changeset
|
144 self._copyToJdk(jdkDir, self.targetDir()) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
145 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
146 class ExtJDKDeployedDist(JarJDKDeployedDist): |
23408
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
147 def __init__(self, name): |
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
148 JarJDKDeployedDist.__init__(self, name) |
22287
5cce6c398d70
re-introduced partOfHotSpot to JarJDKDeployedDist to fix mx_jvmci_makefile.py
Doug Simon <doug.simon@oracle.com>
parents:
22286
diff
changeset
|
149 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
150 def targetDir(self): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
151 return join('jre', 'lib', 'ext') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
152 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
153 class LibJDKDeployedDist(JarJDKDeployedDist): |
23408
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
154 def __init__(self, name): |
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
155 JarJDKDeployedDist.__init__(self, name) |
22287
5cce6c398d70
re-introduced partOfHotSpot to JarJDKDeployedDist to fix mx_jvmci_makefile.py
Doug Simon <doug.simon@oracle.com>
parents:
22286
diff
changeset
|
156 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
157 def targetDir(self): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
158 return join('jre', 'lib') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
159 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
160 class JvmciJDKDeployedDist(JarJDKDeployedDist): |
23408
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
161 def __init__(self, name): |
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
162 JarJDKDeployedDist.__init__(self, name) |
22287
5cce6c398d70
re-introduced partOfHotSpot to JarJDKDeployedDist to fix mx_jvmci_makefile.py
Doug Simon <doug.simon@oracle.com>
parents:
22286
diff
changeset
|
163 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
164 def targetDir(self): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
165 return join('jre', 'lib', 'jvmci') |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
166 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
167 def _exe(l): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
168 return mx.exe_suffix(l) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
169 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
170 def _lib(l): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
171 return mx.add_lib_suffix(mx.add_lib_prefix(l)) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
172 |
22330
856aeb17e892
Add debug info files in hotspot's results
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22328
diff
changeset
|
173 def _lib_dbg(l): |
856aeb17e892
Add debug info files in hotspot's results
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22328
diff
changeset
|
174 return mx.add_debug_lib_suffix(mx.add_lib_prefix(l)) |
856aeb17e892
Add debug info files in hotspot's results
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22328
diff
changeset
|
175 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
176 class HotSpotVMJDKDeployedDist(JDKDeployedDist): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
177 def dist(self): |
22282
9ab88ee1f79f
spelling fix: instanciate -> instantiate
Doug Simon <doug.simon@oracle.com>
parents:
22281
diff
changeset
|
178 name = mx.instantiatedDistributionName(self._name, dict(vm=get_vm(), vmbuild=_vmbuild), context=self._name) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
179 return mx.distribution(name) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
180 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
181 def deploy(self, jdkDir): |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
182 vmbuild = _vmbuildFromJdkDir(jdkDir) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
183 if vmbuild != _vmbuild: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
184 return |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
185 _hs_deploy_map = { |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
186 'jvmti.h' : 'include', |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
187 'sa-jdi.jar' : 'lib', |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
188 _lib('jvm') : join(relativeVmLibDirInJdk(), get_vm()), |
22330
856aeb17e892
Add debug info files in hotspot's results
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22328
diff
changeset
|
189 _lib_dbg('jvm') : join(relativeVmLibDirInJdk(), get_vm()), |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
190 _lib('saproc') : relativeVmLibDirInJdk(), |
22330
856aeb17e892
Add debug info files in hotspot's results
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22328
diff
changeset
|
191 _lib_dbg('saproc') : relativeVmLibDirInJdk(), |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
192 _lib('jsig') : relativeVmLibDirInJdk(), |
22330
856aeb17e892
Add debug info files in hotspot's results
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22328
diff
changeset
|
193 _lib_dbg('jsig') : relativeVmLibDirInJdk(), |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
194 } |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
195 dist = self.dist() |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
196 with tarfile.open(dist.path, 'r') as tar: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
197 for m in tar.getmembers(): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
198 if m.name in _hs_deploy_map: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
199 targetDir = join(jdkDir, _hs_deploy_map[m.name]) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
200 mx.logv('Deploying {} from {} to {}'.format(m.name, dist.name, targetDir)) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
201 tar.extract(m, targetDir) |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
202 |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
203 """ |
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
204 List of distributions that are deployed into a JDK by mx. |
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
205 """ |
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
206 jdkDeployedDists = [ |
23408
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
207 LibJDKDeployedDist('JVMCI_SERVICES'), |
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
208 JvmciJDKDeployedDist('JVMCI_API'), |
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
209 JvmciJDKDeployedDist('JVMCI_HOTSPOT'), |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
210 HotSpotVMJDKDeployedDist('JVM_<vmbuild>_<vm>'), |
16902
0583d157992a
formalized the set of distribution jars that are installed into the JDK to ensure both mx and the HotSpot make system do the necessary deployment
Doug Simon <doug.simon@oracle.com>
parents:
16877
diff
changeset
|
211 ] |
0583d157992a
formalized the set of distribution jars that are installed into the JDK to ensure both mx and the HotSpot make system do the necessary deployment
Doug Simon <doug.simon@oracle.com>
parents:
16877
diff
changeset
|
212 |
16627
68deb37eed70
mx: fix permissions of copied bootstrap JDK files (don't make everything executable)
Bernhard Urban <bernhard.urban@jku.at>
parents:
16623
diff
changeset
|
213 JDK_UNIX_PERMISSIONS_DIR = 0755 |
68deb37eed70
mx: fix permissions of copied bootstrap JDK files (don't make everything executable)
Bernhard Urban <bernhard.urban@jku.at>
parents:
16623
diff
changeset
|
214 JDK_UNIX_PERMISSIONS_FILE = 0644 |
16782
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
215 JDK_UNIX_PERMISSIONS_EXEC = 0755 |
13919
9d70445ea369
mx: set correct permissions for graal.jar
Bernhard Urban <bernhard.urban@jku.at>
parents:
13846
diff
changeset
|
216 |
14602
591f4a575ebf
issue warning/error where ever relevant if a non-supported VM (e.g., client VM on Mac) is used in mx
Doug Simon <doug.simon@oracle.com>
parents:
14595
diff
changeset
|
217 def isVMSupported(vm): |
18799
750db34c9fe1
client-nograal is supported on Mac
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18733
diff
changeset
|
218 if 'client' == vm and len(platform.mac_ver()[0]) != 0: |
14602
591f4a575ebf
issue warning/error where ever relevant if a non-supported VM (e.g., client VM on Mac) is used in mx
Doug Simon <doug.simon@oracle.com>
parents:
14595
diff
changeset
|
219 # Client VM not supported: java launcher on Mac OS X translates '-client' to '-server' |
591f4a575ebf
issue warning/error where ever relevant if a non-supported VM (e.g., client VM on Mac) is used in mx
Doug Simon <doug.simon@oracle.com>
parents:
14595
diff
changeset
|
220 return False |
591f4a575ebf
issue warning/error where ever relevant if a non-supported VM (e.g., client VM on Mac) is used in mx
Doug Simon <doug.simon@oracle.com>
parents:
14595
diff
changeset
|
221 return True |
591f4a575ebf
issue warning/error where ever relevant if a non-supported VM (e.g., client VM on Mac) is used in mx
Doug Simon <doug.simon@oracle.com>
parents:
14595
diff
changeset
|
222 |
22141
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
223 def get_vm_cwd(): |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
224 """ |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
225 Get the current working directory to switch to before running the VM. |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
226 """ |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
227 return _vm_cwd |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
228 |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
229 def get_installed_jdks(): |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
230 """ |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
231 Get the base directory in which the JDKs cloned from $JAVA_HOME exist. |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
232 """ |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
233 return _installed_jdks |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
234 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
235 def get_vm_prefix(asList=True): |
22141
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
236 """ |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
237 Get the prefix for running the VM ("/usr/bin/gdb --args"). |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
238 """ |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
239 if asList: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
240 return _vm_prefix.split() if _vm_prefix is not None else [] |
22141
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
241 return _vm_prefix |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
242 |
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
243 def get_vm_choices(): |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
244 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
245 Get the names of available VMs. |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
246 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
247 return _vmChoices.viewkeys() |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
248 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
249 def dealiased_vm(vm): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
250 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
251 If 'vm' is an alias, returns the aliased name otherwise returns 'vm'. |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
252 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
253 if vm and vm in _vmAliases: |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
254 if vm == 'jvmci' or vm == 'graal': |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
255 mx.log('"--vm ' + vm + '" is deprecated, using "--vm server -Mjit" instead') |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
256 global _jvmciMode |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
257 _jvmciMode = JVMCIMode('jit') |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
258 return _vmAliases[vm] |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
259 return vm |
22141
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
260 |
23405
53d9235e99ba
Expose jvmci mode from mx_jvmci module.
Roland Schatz <roland.schatz@oracle.com>
parents:
23404
diff
changeset
|
261 def get_jvmci_mode(): |
53d9235e99ba
Expose jvmci mode from mx_jvmci module.
Roland Schatz <roland.schatz@oracle.com>
parents:
23404
diff
changeset
|
262 return _jvmciMode.jvmciMode |
53d9235e99ba
Expose jvmci mode from mx_jvmci module.
Roland Schatz <roland.schatz@oracle.com>
parents:
23404
diff
changeset
|
263 |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
264 def get_jvmci_mode_args(): |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
265 return _jvmciMode.vmArgs |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
266 |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
267 def get_vm(): |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
268 """ |
23711
387870951564
Remove old DEFAULT_VM machinery
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23679
diff
changeset
|
269 Gets the configured VM. |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
270 """ |
23711
387870951564
Remove old DEFAULT_VM machinery
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23679
diff
changeset
|
271 return _vm |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
272 |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
273 """ |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
274 A context manager that can be used with the 'with' statement to set the VM |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
275 used by all VM executions within the scope of the 'with' statement. For example: |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
276 |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
277 with VM('server'): |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
278 dacapo(['pmd']) |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
279 """ |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
280 class VM: |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
281 def __init__(self, vm=None, build=None): |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
282 assert build is None or build in _vmbuildChoices |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
283 self.build = build if build else _vmbuild |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
284 if vm == 'jvmci': |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
285 mx.log('WARNING: jvmci VM is deprecated, using server VM with -Mjit instead') |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
286 self.vm = 'server' |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
287 self.jvmciMode = JVMCIMode('jit') |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
288 else: |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
289 assert vm is None or vm in _vmChoices.keys() |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
290 self.vm = vm if vm else _vm |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
291 self.jvmciMode = None |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
292 |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
293 def __enter__(self): |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
294 global _vm, _vmbuild |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
295 self.previousVm = _vm |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
296 self.previousBuild = _vmbuild |
22286
2ecfec90e51e
moved gate from mx_jvmci.py to mx_gate.py in core mx
Doug Simon <doug.simon@oracle.com>
parents:
22284
diff
changeset
|
297 mx.reInstantiateDistribution('JVM_<vmbuild>_<vm>', dict(vm=self.previousVm, vmbuild=self.previousBuild), dict(vm=self.vm, vmbuild=self.build)) |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
298 _vm = self.vm |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
299 _vmbuild = self.build |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
300 if self.jvmciMode is not None: |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
301 self.jvmciMode.__enter__() |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
302 |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
303 def __exit__(self, exc_type, exc_value, traceback): |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
304 global _vm, _vmbuild |
22286
2ecfec90e51e
moved gate from mx_jvmci.py to mx_gate.py in core mx
Doug Simon <doug.simon@oracle.com>
parents:
22284
diff
changeset
|
305 mx.reInstantiateDistribution('JVM_<vmbuild>_<vm>', dict(vm=self.vm, vmbuild=self.build), dict(vm=self.previousVm, vmbuild=self.previousBuild)) |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
306 _vm = self.previousVm |
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
307 _vmbuild = self.previousBuild |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
308 if self.jvmciMode is not None: |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
309 self.jvmciMode.__exit__(exc_type, exc_value, traceback) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
310 |
16627
68deb37eed70
mx: fix permissions of copied bootstrap JDK files (don't make everything executable)
Bernhard Urban <bernhard.urban@jku.at>
parents:
16623
diff
changeset
|
311 def chmodRecursive(dirname, chmodFlagsDir): |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
312 if mx.get_os() == 'windows': |
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
313 return |
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
314 |
16627
68deb37eed70
mx: fix permissions of copied bootstrap JDK files (don't make everything executable)
Bernhard Urban <bernhard.urban@jku.at>
parents:
16623
diff
changeset
|
315 def _chmodDir(chmodFlags, dirname, fnames): |
68deb37eed70
mx: fix permissions of copied bootstrap JDK files (don't make everything executable)
Bernhard Urban <bernhard.urban@jku.at>
parents:
16623
diff
changeset
|
316 os.chmod(dirname, chmodFlagsDir) |
6705
0cb1ac637dd0
Added recursive chmod for cases where JAVA_HOME is not owned by graal workspace owner.
Laurent Daynes <Laurent.Daynes@oracle.com>
parents:
6702
diff
changeset
|
317 |
16627
68deb37eed70
mx: fix permissions of copied bootstrap JDK files (don't make everything executable)
Bernhard Urban <bernhard.urban@jku.at>
parents:
16623
diff
changeset
|
318 os.path.walk(dirname, _chmodDir, chmodFlagsDir) |
6705
0cb1ac637dd0
Added recursive chmod for cases where JAVA_HOME is not owned by graal workspace owner.
Laurent Daynes <Laurent.Daynes@oracle.com>
parents:
6702
diff
changeset
|
319 |
4156
843c8d6720da
Added 'export' command for creating a GraalVM zip file distribution without the Mercurial data or VM sources.
Doug Simon <doug.simon@oracle.com>
parents:
4155
diff
changeset
|
320 def export(args): |
15420
5947bb02474f
mx export: change the way of marking a repo as dirty
Bernhard Urban <bernhard.urban@jku.at>
parents:
15405
diff
changeset
|
321 """create archives of builds split by vmbuild and vm""" |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
322 |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
323 parser = ArgumentParser(prog='mx export') |
4156
843c8d6720da
Added 'export' command for creating a GraalVM zip file distribution without the Mercurial data or VM sources.
Doug Simon <doug.simon@oracle.com>
parents:
4155
diff
changeset
|
324 args = parser.parse_args(args) |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
325 |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
326 # collect data about export |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
327 infos = dict() |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
328 infos['timestamp'] = time.time() |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
329 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
330 hgcfg = mx.HgConfig() |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
331 hgcfg.check() |
15420
5947bb02474f
mx export: change the way of marking a repo as dirty
Bernhard Urban <bernhard.urban@jku.at>
parents:
15405
diff
changeset
|
332 infos['revision'] = hgcfg.tip('.') + ('+' if hgcfg.isDirty('.') else '') |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
333 # TODO: infos['repository'] |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
334 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
335 infos['jdkversion'] = str(get_jvmci_bootstrap_jdk().version) |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
336 |
17012
ad10671d1bbd
mx: move get_arch() to mxtool
Bernhard Urban <bernhard.urban@jku.at>
parents:
16983
diff
changeset
|
337 infos['architecture'] = mx.get_arch() |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
338 infos['platform'] = mx.get_os() |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
339 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
340 if mx.get_os != 'windows': |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
341 pass |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
342 # infos['ccompiler'] |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
343 # infos['linker'] |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
344 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
345 infos['hostname'] = socket.gethostname() |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
346 |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
347 def _writeJson(suffix, properties): |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
348 d = infos.copy() |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
349 for k, v in properties.iteritems(): |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
350 assert not d.has_key(k) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
351 d[k] = v |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
352 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
353 jsonFileName = 'export-' + suffix + '.json' |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
354 with open(jsonFileName, 'w') as f: |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
355 print >> f, json.dumps(d) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
356 return jsonFileName |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
357 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
358 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
359 def _genFileName(archivetype, middle): |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
360 idPrefix = infos['revision'] + '_' |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
361 idSuffix = '.tar.gz' |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
362 return join(_suite.dir, "graalvm_" + archivetype + "_" + idPrefix + middle + idSuffix) |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
363 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
364 def _genFileArchPlatformName(archivetype, middle): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
365 return _genFileName(archivetype, infos['platform'] + '_' + infos['architecture'] + '_' + middle) |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
366 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
367 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
368 # archive different build types of hotspot |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
369 for vmBuild in _vmbuildChoices: |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
370 jdkDir = join(_jdksDir(), vmBuild) |
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
371 if not exists(jdkDir): |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
372 mx.logv("skipping " + vmBuild) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
373 continue |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
374 |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
375 tarName = _genFileArchPlatformName('basejdk', vmBuild) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
376 mx.logv("creating basejdk " + tarName) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
377 vmSet = set() |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
378 with tarfile.open(tarName, 'w:gz') as tar: |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
379 for root, _, files in os.walk(jdkDir): |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
380 if basename(root) in _vmChoices.keys(): |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
381 # TODO: add some assert to check path assumption |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
382 vmSet.add(root) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
383 continue |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
384 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
385 for f in files: |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
386 name = join(root, f) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
387 # print name |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
388 tar.add(name, name) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
389 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
390 n = _writeJson("basejdk-" + vmBuild, {'vmbuild' : vmBuild}) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
391 tar.add(n, n) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
392 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
393 # create a separate archive for each VM |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
394 for vm in vmSet: |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
395 bVm = basename(vm) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
396 vmTarName = _genFileArchPlatformName('vm', vmBuild + '_' + bVm) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
397 mx.logv("creating vm " + vmTarName) |
4156
843c8d6720da
Added 'export' command for creating a GraalVM zip file distribution without the Mercurial data or VM sources.
Doug Simon <doug.simon@oracle.com>
parents:
4155
diff
changeset
|
398 |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
399 debugFiles = set() |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
400 with tarfile.open(vmTarName, 'w:gz') as tar: |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
401 for root, _, files in os.walk(vm): |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
402 for f in files: |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
403 # TODO: mac, windows, solaris? |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
404 if any(map(f.endswith, [".debuginfo"])): |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
405 debugFiles.add(f) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
406 else: |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
407 name = join(root, f) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
408 # print name |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
409 tar.add(name, name) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
410 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
411 n = _writeJson("vm-" + vmBuild + "-" + bVm, {'vmbuild' : vmBuild, 'vm' : bVm}) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
412 tar.add(n, n) |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
413 |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
414 if len(debugFiles) > 0: |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
415 debugTarName = _genFileArchPlatformName('debugfilesvm', vmBuild + '_' + bVm) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
416 mx.logv("creating debugfilesvm " + debugTarName) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
417 with tarfile.open(debugTarName, 'w:gz') as tar: |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
418 for f in debugFiles: |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
419 name = join(root, f) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
420 # print name |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
421 tar.add(name, name) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
422 |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
423 n = _writeJson("debugfilesvm-" + vmBuild + "-" + bVm, {'vmbuild' : vmBuild, 'vm' : bVm}) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
424 tar.add(n, n) |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
425 |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
426 # jvmci directory |
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
427 jvmciDirTarName = _genFileName('classfiles', 'javac') |
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
428 mx.logv("creating jvmci " + jvmciDirTarName) |
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
429 with tarfile.open(jvmciDirTarName, 'w:gz') as tar: |
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
430 for root, _, files in os.walk("jvmci"): |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
431 for f in [f for f in files if not f.endswith('.java')]: |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
432 name = join(root, f) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
433 # print name |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
434 tar.add(name, name) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
435 |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
436 n = _writeJson("jvmci", {'javacompiler' : 'javac'}) |
15405
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
437 tar.add(n, n) |
5dcf0ae606f3
mx: new export command
Bernhard Urban <bernhard.urban@jku.at>
parents:
15404
diff
changeset
|
438 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
439 def relativeVmLibDirInJdk(): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
440 mxos = mx.get_os() |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
441 if mxos == 'darwin': |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
442 return join('jre', 'lib') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
443 if mxos == 'windows' or mxos == 'cygwin': |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
444 return join('jre', 'bin') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
445 return join('jre', 'lib', mx.get_arch()) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
446 |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
447 def vmLibDirInJdk(jdkDir): |
4607
ee87cfe2f8f9
Made GraalVM build work on Mac OS X.
Doug Simon <doug.simon@oracle.com>
parents:
4602
diff
changeset
|
448 """ |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
449 Gets the directory within a JDK where the server and client |
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
450 sub-directories are located. |
4607
ee87cfe2f8f9
Made GraalVM build work on Mac OS X.
Doug Simon <doug.simon@oracle.com>
parents:
4602
diff
changeset
|
451 """ |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
452 return join(jdkDir, relativeVmLibDirInJdk()) |
4607
ee87cfe2f8f9
Made GraalVM build work on Mac OS X.
Doug Simon <doug.simon@oracle.com>
parents:
4602
diff
changeset
|
453 |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
454 def getVmJliLibDirs(jdkDir): |
17014
6a30738791f7
mx: add helper for determine jli location
Bernhard Urban <bernhard.urban@jku.at>
parents:
17012
diff
changeset
|
455 """ |
6a30738791f7
mx: add helper for determine jli location
Bernhard Urban <bernhard.urban@jku.at>
parents:
17012
diff
changeset
|
456 Get the directories within a JDK where the jli library designates to. |
6a30738791f7
mx: add helper for determine jli location
Bernhard Urban <bernhard.urban@jku.at>
parents:
17012
diff
changeset
|
457 """ |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
458 mxos = mx.get_os() |
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
459 if mxos == 'darwin': |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
460 return [join(jdkDir, 'jre', 'lib', 'jli')] |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
461 if mxos == 'windows' or mxos == 'cygwin': |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
462 return [join(jdkDir, 'jre', 'bin'), join(jdkDir, 'bin')] |
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
463 return [join(jdkDir, 'jre', 'lib', mx.get_arch(), 'jli'), join(jdkDir, 'lib', mx.get_arch(), 'jli')] |
17014
6a30738791f7
mx: add helper for determine jli location
Bernhard Urban <bernhard.urban@jku.at>
parents:
17012
diff
changeset
|
464 |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
465 def getVmCfgInJdk(jdkDir, jvmCfgFile='jvm.cfg'): |
5680
87fc13b59258
Split _vmLibDirInJdk into _vmLibDirInJdk and _vmCfgInJdk to account for Windows jdk layout
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5649
diff
changeset
|
466 """ |
87fc13b59258
Split _vmLibDirInJdk into _vmLibDirInJdk and _vmCfgInJdk to account for Windows jdk layout
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5649
diff
changeset
|
467 Get the jvm.cfg file. |
87fc13b59258
Split _vmLibDirInJdk into _vmLibDirInJdk and _vmCfgInJdk to account for Windows jdk layout
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5649
diff
changeset
|
468 """ |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
469 mxos = mx.get_os() |
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
470 if mxos == "windows" or mxos == "cygwin": |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
471 return join(jdkDir, 'jre', 'lib', mx.get_arch(), jvmCfgFile) |
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
472 return join(vmLibDirInJdk(jdkDir), jvmCfgFile) |
5680
87fc13b59258
Split _vmLibDirInJdk into _vmLibDirInJdk and _vmCfgInJdk to account for Windows jdk layout
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5649
diff
changeset
|
473 |
9119
0c9c4ae236b2
refactoring to ensure the path to the JDKs dir is consistent between the _jdk() and clean() command
Doug Simon <doug.simon@oracle.com>
parents:
9118
diff
changeset
|
474 def _jdksDir(): |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
475 return os.path.abspath(join(_installed_jdks if _installed_jdks else _suite.dir, 'jdk' + str(get_jvmci_bootstrap_jdk().version))) |
9119
0c9c4ae236b2
refactoring to ensure the path to the JDKs dir is consistent between the _jdk() and clean() command
Doug Simon <doug.simon@oracle.com>
parents:
9118
diff
changeset
|
476 |
17055
3e4d3be0b6bf
mx: fix default handling of vm config and build type
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
17052
diff
changeset
|
477 def _handle_missing_VM(bld, vm=None): |
3e4d3be0b6bf
mx: fix default handling of vm config and build type
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
17052
diff
changeset
|
478 if not vm: |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
479 vm = get_vm() |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
480 mx.log('The ' + bld + ' ' + vm + ' VM has not been created') |
21169
41ec6d89cb84
mx: fix calls to is_interactive()
Andreas Woess <andreas.woess@oracle.com>
parents:
21166
diff
changeset
|
481 if mx.is_interactive(): |
11511
3110bea9a6b0
mx: add helper method for yes/no question
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
11493
diff
changeset
|
482 if mx.ask_yes_no('Build it now', 'y'): |
11371
74414b248381
mx: added --vmbuild global option, removed --product, --fastdebug, --debug options as well as suffix of build command
Doug Simon <doug.simon@oracle.com>
parents:
11368
diff
changeset
|
483 with VM(vm, bld): |
74414b248381
mx: added --vmbuild global option, removed --product, --fastdebug, --debug options as well as suffix of build command
Doug Simon <doug.simon@oracle.com>
parents:
11368
diff
changeset
|
484 build([]) |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
485 return |
23343
c8526451bb6b
register DEFAULT_VM as env var to be captured in IDE configs
Doug Simon <doug.simon@oracle.com>
parents:
23332
diff
changeset
|
486 mx.abort('You need to run "mx --vm=' + vm + ' --vmbuild=' + bld + ' build" to build the selected VM') |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
487 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
488 def check_VM_exists(vm, jdkDir, build=None): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
489 if not build: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
490 build = _vmbuild |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
491 jvmCfg = getVmCfgInJdk(jdkDir) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
492 found = False |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
493 with open(jvmCfg) as f: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
494 for line in f: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
495 if line.strip() == '-' + vm + ' KNOWN': |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
496 found = True |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
497 break |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
498 if not found: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
499 _handle_missing_VM(build, vm) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
500 |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
501 def get_jvmci_jdk_dir(build=None, vmToCheck=None, create=False, deployDists=True): |
4155
394404b2d9bd
Removed strict requirement for GRAAL environment variable. It only needs to be set now if the graal directory is not in the directory hierarchy of GraalVM JDK.
Doug Simon <doug.simon@oracle.com>
parents:
4153
diff
changeset
|
502 """ |
22491
917b3ad10c32
renamed 'installJars' parameter of get_jvmci_jdk to 'deployDists'
Doug Simon <doug.simon@oracle.com>
parents:
22479
diff
changeset
|
503 Gets the path of the JVMCI JDK corresponding to 'build' (or '_vmbuild'), creating it |
917b3ad10c32
renamed 'installJars' parameter of get_jvmci_jdk to 'deployDists'
Doug Simon <doug.simon@oracle.com>
parents:
22479
diff
changeset
|
504 first if it does not exist and 'create' is True. If the JDK was created or |
917b3ad10c32
renamed 'installJars' parameter of get_jvmci_jdk to 'deployDists'
Doug Simon <doug.simon@oracle.com>
parents:
22479
diff
changeset
|
505 'deployDists' is True, then the JDK deployable distributions are deployed into |
917b3ad10c32
renamed 'installJars' parameter of get_jvmci_jdk to 'deployDists'
Doug Simon <doug.simon@oracle.com>
parents:
22479
diff
changeset
|
506 the JDK. |
4155
394404b2d9bd
Removed strict requirement for GRAAL environment variable. It only needs to be set now if the graal directory is not in the directory hierarchy of GraalVM JDK.
Doug Simon <doug.simon@oracle.com>
parents:
4153
diff
changeset
|
507 """ |
17055
3e4d3be0b6bf
mx: fix default handling of vm config and build type
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
17052
diff
changeset
|
508 if not build: |
22019
07cfd3d7072b
removed _vmSourcesAvailable
Doug Simon <doug.simon@oracle.com>
parents:
22018
diff
changeset
|
509 build = _vmbuild |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
510 jdkDir = join(_jdksDir(), build) |
4582
b24386206122
Made all vm builds go into subdirectories, even product builds to simplify building the various types of VMs (server, client and graal).
Doug Simon <doug.simon@oracle.com>
parents:
4577
diff
changeset
|
511 if create: |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
512 srcJdk = get_jvmci_bootstrap_jdk().home |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
513 if not exists(jdkDir): |
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
514 mx.log('Creating ' + jdkDir + ' from ' + srcJdk) |
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
515 shutil.copytree(srcJdk, jdkDir) |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
516 |
4584
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
517 # Make a copy of the default VM so that this JDK can be |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
518 # reliably used as the bootstrap for a HotSpot build. |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
519 jvmCfg = getVmCfgInJdk(jdkDir) |
4584
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
520 if not exists(jvmCfg): |
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
521 mx.abort(jvmCfg + ' does not exist') |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
522 |
8647
5f8299106dd9
A server0 "build" needs to create a jdk copy if it does not exist yet
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
8646
diff
changeset
|
523 jvmCfgLines = [] |
4584
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
524 with open(jvmCfg) as f: |
23711
387870951564
Remove old DEFAULT_VM machinery
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23679
diff
changeset
|
525 jvmCfgLines = f.readlines() |
4584
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
526 |
23711
387870951564
Remove old DEFAULT_VM machinery
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23679
diff
changeset
|
527 jvmCfgLines += ['-original KNOWN\n'] |
387870951564
Remove old DEFAULT_VM machinery
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23679
diff
changeset
|
528 |
387870951564
Remove old DEFAULT_VM machinery
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23679
diff
changeset
|
529 defaultVM = 'server' |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
530 chmodRecursive(jdkDir, JDK_UNIX_PERMISSIONS_DIR) |
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
531 shutil.move(join(vmLibDirInJdk(jdkDir), defaultVM), join(vmLibDirInJdk(jdkDir), 'original')) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
532 |
18733
d7ec30ebb0f2
Properly chmod files modified when creating JDK image
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18714
diff
changeset
|
533 if mx.get_os() != 'windows': |
d7ec30ebb0f2
Properly chmod files modified when creating JDK image
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18714
diff
changeset
|
534 os.chmod(jvmCfg, JDK_UNIX_PERMISSIONS_FILE) |
8261
2237260c6fdb
the contents of jvm.cfg are reset when copying the JDK so that the non-default VMs must be built before being run
Doug Simon <doug.simon@oracle.com>
parents:
8223
diff
changeset
|
535 with open(jvmCfg, 'w') as fp: |
8647
5f8299106dd9
A server0 "build" needs to create a jdk copy if it does not exist yet
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
8646
diff
changeset
|
536 for line in jvmCfgLines: |
5f8299106dd9
A server0 "build" needs to create a jdk copy if it does not exist yet
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
8646
diff
changeset
|
537 fp.write(line) |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
538 |
5596
e4b1bc5e29e0
hsdis library is downloaded into newly created Graal JDK
Doug Simon <doug.simon@oracle.com>
parents:
5517
diff
changeset
|
539 # Install a copy of the disassembler library |
e4b1bc5e29e0
hsdis library is downloaded into newly created Graal JDK
Doug Simon <doug.simon@oracle.com>
parents:
5517
diff
changeset
|
540 try: |
23352
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
541 hsdis_args = [] |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
542 syntax = mx.get_env('HSDIS_SYNTAX') |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
543 if syntax: |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
544 hsdis_args = [syntax] |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
545 hsdis(hsdis_args, copyToDir=vmLibDirInJdk(jdkDir)) |
5596
e4b1bc5e29e0
hsdis library is downloaded into newly created Graal JDK
Doug Simon <doug.simon@oracle.com>
parents:
5517
diff
changeset
|
546 except SystemExit: |
e4b1bc5e29e0
hsdis library is downloaded into newly created Graal JDK
Doug Simon <doug.simon@oracle.com>
parents:
5517
diff
changeset
|
547 pass |
3718 | 548 else: |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
549 if not exists(jdkDir): |
11797
65dbed1fdf46
be verbose when the JDK specified by --installed-jdks is missing
Doug Simon <doug.simon@oracle.com>
parents:
11784
diff
changeset
|
550 if _installed_jdks: |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
551 mx.log("The selected JDK directory does not (yet) exist: " + jdkDir) |
17055
3e4d3be0b6bf
mx: fix default handling of vm config and build type
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
17052
diff
changeset
|
552 _handle_missing_VM(build, vmToCheck) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
553 |
22491
917b3ad10c32
renamed 'installJars' parameter of get_jvmci_jdk to 'deployDists'
Doug Simon <doug.simon@oracle.com>
parents:
22479
diff
changeset
|
554 if deployDists: |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
555 for jdkDist in jdkDeployedDists: |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
556 dist = jdkDist.dist() |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
557 if exists(dist.path): |
21031
e1c063565b3c
Graal Services: use services files in jre/lib/graal/services
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
20996
diff
changeset
|
558 _installDistInJdks(jdkDist) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
559 |
22693
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
560 # patch 'release' file (append jvmci revision) |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
561 releaseFile = join(jdkDir, 'release') |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
562 if exists(releaseFile): |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
563 releaseFileLines = [] |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
564 with open(releaseFile) as f: |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
565 for line in f: |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
566 releaseFileLines.append(line) |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
567 |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
568 if mx.get_os() != 'windows': |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
569 os.chmod(releaseFile, JDK_UNIX_PERMISSIONS_FILE) |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
570 with open(releaseFile, 'w') as fp: |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
571 for line in releaseFileLines: |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
572 timmedLine = line.strip() |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
573 if timmedLine.startswith('SOURCE="') and timmedLine.endswith('"'): |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
574 try: |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
575 versions = OrderedDict() |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
576 for p in timmedLine[len('SOURCE="'):-len('"')].split(' '): |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
577 if p: |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
578 idx = p.index(':') |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
579 versions[p[:idx]] = p[idx+1:] |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
580 if _suite.vc: |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
581 versions['jvmci'] = _suite.vc.parent(_suite.dir)[:12] |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
582 else: |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
583 versions['jvmci'] = "unknown" |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
584 if 'hotspot' in versions: |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
585 del versions['hotspot'] |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
586 fp.write('SOURCE=" ' + ' '.join((k + ":" + v for k, v in versions.iteritems())) + '"' + os.linesep) |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
587 mx.logv("Updating " + releaseFile) |
23286
dd9cc155639c
Merge with jdk8u66-b17
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22777
diff
changeset
|
588 except BaseException as e: |
23379
24505bf61633
allow JVMCI compiler to change the compilation policy for a method (JDK-8152311)
Doug Simon <doug.simon@oracle.com>
parents:
23352
diff
changeset
|
589 mx.warn("Exception " + str(e) + " while updating release file") |
22693
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
590 fp.write(line) |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
591 else: |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
592 fp.write(line) |
af01df1b8f0d
Fix release file patching
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22680
diff
changeset
|
593 |
8261
2237260c6fdb
the contents of jvm.cfg are reset when copying the JDK so that the non-default VMs must be built before being run
Doug Simon <doug.simon@oracle.com>
parents:
8223
diff
changeset
|
594 if vmToCheck is not None: |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
595 jvmCfg = getVmCfgInJdk(jdkDir) |
8261
2237260c6fdb
the contents of jvm.cfg are reset when copying the JDK so that the non-default VMs must be built before being run
Doug Simon <doug.simon@oracle.com>
parents:
8223
diff
changeset
|
596 found = False |
2237260c6fdb
the contents of jvm.cfg are reset when copying the JDK so that the non-default VMs must be built before being run
Doug Simon <doug.simon@oracle.com>
parents:
8223
diff
changeset
|
597 with open(jvmCfg) as f: |
2237260c6fdb
the contents of jvm.cfg are reset when copying the JDK so that the non-default VMs must be built before being run
Doug Simon <doug.simon@oracle.com>
parents:
8223
diff
changeset
|
598 for line in f: |
2237260c6fdb
the contents of jvm.cfg are reset when copying the JDK so that the non-default VMs must be built before being run
Doug Simon <doug.simon@oracle.com>
parents:
8223
diff
changeset
|
599 if line.strip() == '-' + vmToCheck + ' KNOWN': |
2237260c6fdb
the contents of jvm.cfg are reset when copying the JDK so that the non-default VMs must be built before being run
Doug Simon <doug.simon@oracle.com>
parents:
8223
diff
changeset
|
600 found = True |
2237260c6fdb
the contents of jvm.cfg are reset when copying the JDK so that the non-default VMs must be built before being run
Doug Simon <doug.simon@oracle.com>
parents:
8223
diff
changeset
|
601 break |
2237260c6fdb
the contents of jvm.cfg are reset when copying the JDK so that the non-default VMs must be built before being run
Doug Simon <doug.simon@oracle.com>
parents:
8223
diff
changeset
|
602 if not found: |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
603 _handle_missing_VM(build, vmToCheck) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
604 |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
605 return jdkDir |
4177
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
606 |
22141
f85b80b29176
removed '_' prefix from exported methods and fields and provided accessors
Doug Simon <doug.simon@oracle.com>
parents:
22140
diff
changeset
|
607 def copyToJdk(src, dst, permissions=JDK_UNIX_PERMISSIONS_FILE): |
16782
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
608 name = os.path.basename(src) |
22716
f536aaa5a5d5
Use mx.ensure_dir_exists rather than os.makedirs to avoid races
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22707
diff
changeset
|
609 mx.ensure_dir_exists(dst) |
16782
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
610 dstLib = join(dst, name) |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
611 if mx.get_env('SYMLINK_GRAAL_JAR', None) == 'true': |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
612 # Using symlinks is much faster than copying but may |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
613 # cause issues if the lib is being updated while |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
614 # the VM is running. |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
615 if not os.path.islink(dstLib) or not os.path.realpath(dstLib) == src: |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
616 if exists(dstLib): |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
617 os.remove(dstLib) |
16858
a8af2abc2039
fixed regression in mx causing problems for the SYMLINK_GRAAL_JAR feature
Doug Simon <doug.simon@oracle.com>
parents:
16782
diff
changeset
|
618 os.symlink(src, dstLib) |
16782
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
619 else: |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
620 # do a copy and then a move to get atomic updating (on Unix) |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
621 fd, tmp = tempfile.mkstemp(suffix='', prefix=name, dir=dst) |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
622 shutil.copyfile(src, tmp) |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
623 os.close(fd) |
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
624 shutil.move(tmp, dstLib) |
16863
0d2e3399acfe
mx: add argument for permissions to copyToJdk()
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16862
diff
changeset
|
625 os.chmod(dstLib, permissions) |
16782
9f5e33cf8d52
Factored out the '_copyToJdk' function and allow copying files to jre/lib/ext.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents:
16729
diff
changeset
|
626 |
21031
e1c063565b3c
Graal Services: use services files in jre/lib/graal/services
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
20996
diff
changeset
|
627 def _installDistInJdks(deployableDist): |
16623
addc0564e5b5
split com.oracle.graal.truffle.* projects into a separate graal-truffle.jar and added truffle.jar to the boot class path
Doug Simon <doug.simon@oracle.com>
parents:
16622
diff
changeset
|
628 """ |
21559
be896a1983c0
recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21554
diff
changeset
|
629 Installs the jar(s) for a given Distribution into all existing JVMCI JDKs |
16623
addc0564e5b5
split com.oracle.graal.truffle.* projects into a separate graal-truffle.jar and added truffle.jar to the boot class path
Doug Simon <doug.simon@oracle.com>
parents:
16622
diff
changeset
|
630 """ |
10574
0cad5096735e
commands.py: Make sure _jdk returns an absolute path. Use _jdk and _jdksDir where necessary
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
10570
diff
changeset
|
631 jdks = _jdksDir() |
8134
6e3ebc6fd5a4
graal.jar is installed in all JDKs every time it is updated (GRAAL-136)
Doug Simon <doug.simon@oracle.com>
parents:
8132
diff
changeset
|
632 if exists(jdks): |
6e3ebc6fd5a4
graal.jar is installed in all JDKs every time it is updated (GRAAL-136)
Doug Simon <doug.simon@oracle.com>
parents:
8132
diff
changeset
|
633 for e in os.listdir(jdks): |
21070
2ee48d02afe3
mx: Merge graal service files
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21059
diff
changeset
|
634 jdkDir = join(jdks, e) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
635 deployableDist.deploy(jdkDir) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
636 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
637 def _vmbuildFromJdkDir(jdkDir): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
638 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
639 Determines the VM build corresponding to 'jdkDir'. |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
640 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
641 jdksDir = _jdksDir() |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
642 assert jdkDir.startswith(jdksDir) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
643 vmbuild = os.path.relpath(jdkDir, jdksDir) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
644 assert vmbuild in _vmbuildChoices, 'The vmbuild derived from ' + jdkDir + ' is unknown: ' + vmbuild |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
645 return vmbuild |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
646 |
21613
60154926b513
replaced use of javap with a small Java utility for refining service class list to only those implementing com.oracle.jvmci.service.Service
Doug Simon <doug.simon@oracle.com>
parents:
21607
diff
changeset
|
647 def _getJdkDeployedJars(jdkDir): |
60154926b513
replaced use of javap with a small Java utility for refining service class list to only those implementing com.oracle.jvmci.service.Service
Doug Simon <doug.simon@oracle.com>
parents:
21607
diff
changeset
|
648 """ |
60154926b513
replaced use of javap with a small Java utility for refining service class list to only those implementing com.oracle.jvmci.service.Service
Doug Simon <doug.simon@oracle.com>
parents:
21607
diff
changeset
|
649 Gets jar paths for all deployed distributions in the context of |
60154926b513
replaced use of javap with a small Java utility for refining service class list to only those implementing com.oracle.jvmci.service.Service
Doug Simon <doug.simon@oracle.com>
parents:
21607
diff
changeset
|
650 a given JDK directory. |
60154926b513
replaced use of javap with a small Java utility for refining service class list to only those implementing com.oracle.jvmci.service.Service
Doug Simon <doug.simon@oracle.com>
parents:
21607
diff
changeset
|
651 """ |
60154926b513
replaced use of javap with a small Java utility for refining service class list to only those implementing com.oracle.jvmci.service.Service
Doug Simon <doug.simon@oracle.com>
parents:
21607
diff
changeset
|
652 jars = [] |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
653 for dist in jdkDeployedDists: |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
654 if not isinstance(dist, JarJDKDeployedDist): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
655 continue |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
656 jar = basename(dist.dist().path) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
657 jars.append(join(dist.targetDir(), jar)) |
21613
60154926b513
replaced use of javap with a small Java utility for refining service class list to only those implementing com.oracle.jvmci.service.Service
Doug Simon <doug.simon@oracle.com>
parents:
21607
diff
changeset
|
658 return jars |
60154926b513
replaced use of javap with a small Java utility for refining service class list to only those implementing com.oracle.jvmci.service.Service
Doug Simon <doug.simon@oracle.com>
parents:
21607
diff
changeset
|
659 |
4177
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
660 # run a command in the windows SDK Debug Shell |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
661 def _runInDebugShell(cmd, workingDir, logFile=None, findInOutput=None, respondTo=None): |
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
662 if respondTo is None: |
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
663 respondTo = {} |
4177
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
664 newLine = os.linesep |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
665 startToken = 'RUNINDEBUGSHELL_STARTSEQUENCE' |
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
666 endToken = 'RUNINDEBUGSHELL_ENDSEQUENCE' |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
667 |
4252
67e88b7624d5
Removed need for GRAAL environment variable on Windows.
Doug Simon <doug.simon@oracle.com>
parents:
4247
diff
changeset
|
668 winSDK = mx.get_env('WIN_SDK', 'C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\') |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
669 |
17262
b641450c19ce
mx: rename helper functions for cygwin support and update comments
Bernhard Urban <bernhard.urban@jku.at>
parents:
17233
diff
changeset
|
670 if not exists(mx._cygpathW2U(winSDK)): |
6306
2a819543cc45
Warnings for windows build if there is no SDK
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6294
diff
changeset
|
671 mx.abort("Could not find Windows SDK : '" + winSDK + "' does not exist") |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
672 |
17262
b641450c19ce
mx: rename helper functions for cygwin support and update comments
Bernhard Urban <bernhard.urban@jku.at>
parents:
17233
diff
changeset
|
673 winSDKSetEnv = mx._cygpathW2U(join(winSDK, 'Bin', 'SetEnv.cmd')) |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
674 if not exists(winSDKSetEnv): |
6306
2a819543cc45
Warnings for windows build if there is no SDK
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6294
diff
changeset
|
675 mx.abort("Invalid Windows SDK path (" + winSDK + ") : could not find Bin/SetEnv.cmd (you can use the WIN_SDK environment variable to specify an other path)") |
4252
67e88b7624d5
Removed need for GRAAL environment variable on Windows.
Doug Simon <doug.simon@oracle.com>
parents:
4247
diff
changeset
|
676 |
17262
b641450c19ce
mx: rename helper functions for cygwin support and update comments
Bernhard Urban <bernhard.urban@jku.at>
parents:
17233
diff
changeset
|
677 wincmd = 'cmd.exe /E:ON /V:ON /K "' + mx._cygpathU2W(winSDKSetEnv) + '"' |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
678 p = subprocess.Popen(wincmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) |
4269
ffd5ce8fc736
Moved IDE project configuration into mx.py.
Doug Simon <doug.simon@oracle.com>
parents:
4257
diff
changeset
|
679 stdout = p.stdout |
ffd5ce8fc736
Moved IDE project configuration into mx.py.
Doug Simon <doug.simon@oracle.com>
parents:
4257
diff
changeset
|
680 stdin = p.stdin |
4177
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
681 if logFile: |
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
682 log = open(logFile, 'w') |
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
683 ret = False |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
684 |
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
685 def _writeProcess(s): |
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
686 stdin.write(s + newLine) |
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
687 |
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
688 _writeProcess("echo " + startToken) |
4177
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
689 while True: |
7291
a748e4d44694
Truffle API to specify type-specalized Node classes; annotation processor for automatic code generation of the type-specialized Node classes during the build process
Christian Humer <christian.humer@gmail.com>
parents:
7290
diff
changeset
|
690 # encoding may be None on windows plattforms |
a748e4d44694
Truffle API to specify type-specalized Node classes; annotation processor for automatic code generation of the type-specialized Node classes during the build process
Christian Humer <christian.humer@gmail.com>
parents:
7290
diff
changeset
|
691 if sys.stdout.encoding is None: |
a748e4d44694
Truffle API to specify type-specalized Node classes; annotation processor for automatic code generation of the type-specialized Node classes during the build process
Christian Humer <christian.humer@gmail.com>
parents:
7290
diff
changeset
|
692 encoding = 'utf-8' |
a748e4d44694
Truffle API to specify type-specalized Node classes; annotation processor for automatic code generation of the type-specialized Node classes during the build process
Christian Humer <christian.humer@gmail.com>
parents:
7290
diff
changeset
|
693 else: |
a748e4d44694
Truffle API to specify type-specalized Node classes; annotation processor for automatic code generation of the type-specialized Node classes during the build process
Christian Humer <christian.humer@gmail.com>
parents:
7290
diff
changeset
|
694 encoding = sys.stdout.encoding |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
695 |
7291
a748e4d44694
Truffle API to specify type-specalized Node classes; annotation processor for automatic code generation of the type-specialized Node classes during the build process
Christian Humer <christian.humer@gmail.com>
parents:
7290
diff
changeset
|
696 line = stdout.readline().decode(encoding) |
4177
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
697 if logFile: |
5680
87fc13b59258
Split _vmLibDirInJdk into _vmLibDirInJdk and _vmCfgInJdk to account for Windows jdk layout
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5649
diff
changeset
|
698 log.write(line.encode('utf-8')) |
4177
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
699 line = line.strip() |
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
700 mx.log(line) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
701 if line == startToken: |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
702 _writeProcess('cd /D ' + workingDir + ' & ' + cmd + ' & echo ' + endToken) |
4177
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
703 for regex in respondTo.keys(): |
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
704 match = regex.search(line) |
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
705 if match: |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
706 _writeProcess(respondTo[regex]) |
4177
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
707 if findInOutput: |
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
708 match = findInOutput.search(line) |
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
709 if match: |
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
710 ret = True |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
711 if line == endToken: |
5680
87fc13b59258
Split _vmLibDirInJdk into _vmLibDirInJdk and _vmCfgInJdk to account for Windows jdk layout
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5649
diff
changeset
|
712 if not findInOutput: |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
713 _writeProcess('echo ERRXXX%errorlevel%') |
5680
87fc13b59258
Split _vmLibDirInJdk into _vmLibDirInJdk and _vmCfgInJdk to account for Windows jdk layout
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5649
diff
changeset
|
714 else: |
87fc13b59258
Split _vmLibDirInJdk into _vmLibDirInJdk and _vmCfgInJdk to account for Windows jdk layout
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5649
diff
changeset
|
715 break |
5868
a10e72af4dc5
Make windows build work even if Visual Studio is not installed (only the Windows SDK is required)
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5782
diff
changeset
|
716 if line.startswith('ERRXXX'): |
a10e72af4dc5
Make windows build work even if Visual Studio is not installed (only the Windows SDK is required)
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5782
diff
changeset
|
717 if line == 'ERRXXX0': |
5680
87fc13b59258
Split _vmLibDirInJdk into _vmLibDirInJdk and _vmCfgInJdk to account for Windows jdk layout
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
5649
diff
changeset
|
718 ret = True |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
719 break |
17233
a02c295218aa
mx: add support for cygwin
Bernhard Urban <bernhard.urban@jku.at>
parents:
17055
diff
changeset
|
720 _writeProcess("exit") |
4177
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
721 if logFile: |
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
722 log.close() |
c843578c269d
Make building work on Windows.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4163
diff
changeset
|
723 return ret |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
724 |
11605
3676540f71cf
Allow mxtool suites to be in separate repositories (CR-1367)
Mick Jordan <mick.jordan@oracle.com>
parents:
11534
diff
changeset
|
725 def jdkhome(vm=None): |
3676540f71cf
Allow mxtool suites to be in separate repositories (CR-1367)
Mick Jordan <mick.jordan@oracle.com>
parents:
11534
diff
changeset
|
726 """return the JDK directory selected for the 'vm' command""" |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
727 return get_jvmci_jdk_dir(deployDists=False) |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
728 |
11605
3676540f71cf
Allow mxtool suites to be in separate repositories (CR-1367)
Mick Jordan <mick.jordan@oracle.com>
parents:
11534
diff
changeset
|
729 def print_jdkhome(args, vm=None): |
3676540f71cf
Allow mxtool suites to be in separate repositories (CR-1367)
Mick Jordan <mick.jordan@oracle.com>
parents:
11534
diff
changeset
|
730 """print the JDK directory selected for the 'vm' command""" |
3676540f71cf
Allow mxtool suites to be in separate repositories (CR-1367)
Mick Jordan <mick.jordan@oracle.com>
parents:
11534
diff
changeset
|
731 print jdkhome(vm) |
5103
276e14614531
Added jdkhome command to mx.
Doug Simon <doug.simon@oracle.com>
parents:
5094
diff
changeset
|
732 |
9116
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
733 def buildvars(args): |
11377
0fbc1e418c88
fixed capitalization and tense in documentation of some mx commands
Doug Simon <doug.simon@oracle.com>
parents:
11373
diff
changeset
|
734 """describe the variables that can be set by the -D option to the 'mx build' commmand""" |
9116
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
735 |
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
736 buildVars = { |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
737 'ALT_BOOTDIR' : 'The location of the bootstrap JDK installation (default: ' + get_jvmci_bootstrap_jdk().home + ')', |
9116
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
738 'ALT_OUTPUTDIR' : 'Build directory', |
18876
c446d00f2cdf
mx: added support for Jython 2.7b3 and made ordering in generated files more deterministic\nContributed-by: Igor Ignatyev <igor.ignatyev@oracle.com>
Doug Simon <doug.simon@oracle.com>
parents:
18869
diff
changeset
|
739 'HOTSPOT_BUILD_JOBS' : 'Number of CPUs used by make (default: ' + str(mx.cpu_count()) + ')', |
9116
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
740 'INSTALL' : 'Install the built VM into the JDK? (default: y)', |
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
741 'ZIP_DEBUGINFO_FILES' : 'Install zipped debug symbols file? (default: 0)', |
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
742 } |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
743 |
9116
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
744 mx.log('HotSpot build variables that can be set by the -D option to "mx build":') |
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
745 mx.log('') |
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
746 for n in sorted(buildVars.iterkeys()): |
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
747 mx.log(n) |
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
748 mx.log(textwrap.fill(buildVars[n], initial_indent=' ', subsequent_indent=' ', width=200)) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
749 |
9120
9f361c0f912b
added note about mx/env to the output of 'mx buildvars'
Doug Simon <doug.simon@oracle.com>
parents:
9119
diff
changeset
|
750 mx.log('') |
22018
11ed27b2abe8
remove hard-coded use of 'mx' to refer to the mxDir for the graal suite
Doug Simon <doug.simon@oracle.com>
parents:
22017
diff
changeset
|
751 mx.log('Note that these variables can be given persistent values in the file ' + join(_suite.mxDir, 'env') + ' (see \'mx about\').') |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
752 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
753 def _hotspotReplaceResultsVar(m): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
754 var = m.group(1) |
22283
65eb572cbcb7
extended JVM_<vmbuild>_<vm> template distribution with MacOS support
Doug Simon <doug.simon@oracle.com>
parents:
22282
diff
changeset
|
755 if var == 'os': |
22332
4dfa1275ffa3
Fix alt outputdir for -nojvmci builds
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22331
diff
changeset
|
756 return _hotspotOs(mx.get_os()) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
757 if var == 'buildname': |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
758 return _hotspotGetVariant() |
22284
09acb1bc3a56
make hotspot native project's results parameterized on <vmbuild>
Doug Simon <doug.simon@oracle.com>
parents:
22283
diff
changeset
|
759 if var == 'vmbuild': |
09acb1bc3a56
make hotspot native project's results parameterized on <vmbuild>
Doug Simon <doug.simon@oracle.com>
parents:
22283
diff
changeset
|
760 return _vmbuild |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
761 return mx._replaceResultsVar(m) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
762 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
763 class HotSpotProject(mx.NativeProject): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
764 def __init__(self, suite, name, deps, workingSets, results, output, **args): |
22436
5bf761306682
Don't create empty jvmci/src/{s,r,c} directories in mx.
Roland Schatz <roland.schatz@oracle.com>
parents:
22429
diff
changeset
|
765 mx.NativeProject.__init__(self, suite, name, "", [], deps, workingSets, results, output, join(suite.dir, "src")) # TODO... |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
766 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
767 def getOutput(self, replaceVar=_hotspotReplaceResultsVar): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
768 return mx.NativeProject.getOutput(self, replaceVar=replaceVar) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
769 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
770 def getResults(self, replaceVar=_hotspotReplaceResultsVar): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
771 return mx.NativeProject.getResults(self, replaceVar=replaceVar) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
772 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
773 def getBuildTask(self, args): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
774 return HotSpotBuildTask(self, args, _vmbuild, get_vm()) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
775 |
22332
4dfa1275ffa3
Fix alt outputdir for -nojvmci builds
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22331
diff
changeset
|
776 def _hotspotOs(mx_os): |
4dfa1275ffa3
Fix alt outputdir for -nojvmci builds
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22331
diff
changeset
|
777 if mx_os == 'darwin': |
4dfa1275ffa3
Fix alt outputdir for -nojvmci builds
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22331
diff
changeset
|
778 return 'bsd' |
4dfa1275ffa3
Fix alt outputdir for -nojvmci builds
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22331
diff
changeset
|
779 return mx_os |
4dfa1275ffa3
Fix alt outputdir for -nojvmci builds
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22331
diff
changeset
|
780 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
781 def _hotspotGetVariant(vm=None): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
782 if not vm: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
783 vm = get_vm() |
24135
a8e0d0625b32
removed defunct support for non-INCLUDE_JVMCI builds
Doug Simon <doug.simon@oracle.com>
parents:
24107
diff
changeset
|
784 variant = {'client': 'compiler1', 'server': 'compiler2'}.get(vm, vm) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
785 return variant |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
786 |
23311
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
787 """ |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
788 Represents a JDK HotSpot version derived from a build tag such as "jdk8u66-b16". |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
789 """ |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
790 class JDKHotSpotVersion: |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
791 def __init__(self, javaCompliance, update, build): |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
792 self.javaCompliance = javaCompliance |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
793 self.update = update |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
794 self.build = build |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
795 |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
796 @staticmethod |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
797 def parse_tag(tag): |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
798 m = re.match(r'jdk8u(\d+)-b(\d+)', tag) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
799 assert m, 'unrecognized jdk8 build tag: ' + tag |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
800 return JDKHotSpotVersion(mx.JavaCompliance('8'), m.group(1), m.group(2)) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
801 |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
802 def __str__(self): |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
803 return '{}_{}_{}'.format(self.javaCompliance.value, self.update, self.build) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
804 |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
805 def __cmp__(self, other): |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
806 assert isinstance(other, JDKHotSpotVersion), 'cannot compare a JDKHotSpotVersion object with ' + type(other) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
807 return cmp(str(self), str(other)) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
808 |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
809 def get_jvmci_hotspot_version(): |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
810 """ |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
811 Gets the upstream HotSpot version JVMCI is based on. |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
812 """ |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
813 vc = mx.VC.get_vc(_suite.dir, abortOnError=False) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
814 assert vc, 'expected jvmci-8 to be version controlled' |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
815 assert isinstance(vc, mx.HgConfig), 'expected jvmci-8 VC to be Mercurial, not ' + vc.proper_name |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
816 lines = vc.hg_command(_suite.dir, ['log', '-r', 'keyword("Added tag jdk8u")', '--template', '{desc}\\n'], quiet=True).strip().split('\n') |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
817 assert lines, 'no hg commits found that match "Added tag jdk8u..."' |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
818 versions = [line.split()[2] for line in lines] |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
819 return JDKHotSpotVersion.parse_tag(sorted(versions)[-1]) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
820 |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
821 def get_jdk_hotspot_version(tag=mx.DEFAULT_JDK_TAG): |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
822 """ |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
823 Gets the HotSpot version in the JDK selected by `tag`. |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
824 """ |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
825 jdk = mx.get_jdk(tag=tag) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
826 output = subprocess.check_output([jdk.java, '-version'], stderr=subprocess.STDOUT) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
827 m = re.search(r'Java\(TM\) SE Runtime Environment \(build 1.8.0_(\d+)-b(\d+)\)', output) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
828 return JDKHotSpotVersion(jdk.javaCompliance, m.group(1), m.group(2)) |
54b4e75c6088
added get_jvmci_hotspot_version and get_jdk_hotspot_version to respectively query the HotSpot version JVMCI is based on and the version in the bootstrap JDK
Doug Simon <doug.simon@oracle.com>
parents:
23308
diff
changeset
|
829 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
830 class HotSpotBuildTask(mx.NativeBuildTask): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
831 def __init__(self, project, args, vmbuild, vm): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
832 mx.NativeBuildTask.__init__(self, args, project) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
833 self.vm = vm |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
834 self.vmbuild = vmbuild |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
835 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
836 def __str__(self): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
837 return 'Building HotSpot[{}, {}]'.format(self.vmbuild, self.vm) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
838 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
839 def build(self): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
840 isWindows = platform.system() == 'Windows' or "CYGWIN" in platform.system() |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
841 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
842 if self.vm.startswith('server'): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
843 buildSuffix = '' |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
844 else: |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
845 assert self.vm.startswith('client'), self.vm |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
846 buildSuffix = '1' |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
847 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
848 if isWindows: |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
849 t_compilelogfile = mx._cygpathU2W(os.path.join(_suite.dir, "jvmciCompile.log")) |
22335
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
850 mksHome = mx.get_env('MKS_HOME', 'C:\\cygwin\\bin') |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
851 |
22335
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
852 variant = _hotspotGetVariant(self.vm) |
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
853 project_config = variant + '_' + self.vmbuild |
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
854 jvmciHome = mx._cygpathU2W(_suite.dir) |
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
855 _runInDebugShell('msbuild ' + jvmciHome + r'\build\vs-amd64\jvm.vcproj /p:Configuration=' + project_config + ' /target:clean', jvmciHome) |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
856 winCompileCmd = r'set HotSpotMksHome=' + mksHome + r'& set JAVA_HOME=' + mx._cygpathU2W(get_jvmci_bootstrap_jdk().home) + r'& set path=%JAVA_HOME%\bin;%path%;%HotSpotMksHome%& cd /D "' + jvmciHome + r'\make\windows"& call create.bat ' + jvmciHome |
22335
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
857 print winCompileCmd |
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
858 winCompileSuccess = re.compile(r"^Writing \.vcxproj file:") |
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
859 if not _runInDebugShell(winCompileCmd, jvmciHome, t_compilelogfile, winCompileSuccess): |
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
860 mx.abort('Error executing create command') |
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
861 winBuildCmd = 'msbuild ' + jvmciHome + r'\build\vs-amd64\jvm.vcxproj /p:Configuration=' + project_config + ' /p:Platform=x64' |
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
862 if not _runInDebugShell(winBuildCmd, jvmciHome, t_compilelogfile): |
8217ef77a80a
Work on Windows build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22334
diff
changeset
|
863 mx.abort('Error building project') |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
864 else: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
865 def filterXusage(line): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
866 if not 'Xusage.txt' in line: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
867 sys.stderr.write(line + os.linesep) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
868 cpus = self.parallelism |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
869 makeDir = join(_suite.dir, 'make') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
870 runCmd = [mx.gmake_cmd(), '-C', makeDir] |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
871 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
872 env = os.environ.copy() |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
873 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
874 # These must be passed as environment variables |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
875 env.setdefault('LANG', 'C') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
876 #env['JAVA_HOME'] = jdk |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
877 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
878 def setMakeVar(name, default, env=None): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
879 """Sets a make variable on the command line to the value |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
880 of the variable in 'env' with the same name if defined |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
881 and 'env' is not None otherwise to 'default' |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
882 """ |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
883 runCmd.append(name + '=' + (env.get(name, default) if env else default)) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
884 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
885 if self.args.D: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
886 for nv in self.args.D: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
887 name, value = nv.split('=', 1) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
888 setMakeVar(name.strip(), value) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
889 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
890 setMakeVar('ARCH_DATA_MODEL', '64', env=env) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
891 setMakeVar('HOTSPOT_BUILD_JOBS', str(cpus), env=env) |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
892 setMakeVar('ALT_BOOTDIR', get_jvmci_bootstrap_jdk().home, env=env) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
893 # setMakeVar("EXPORT_PATH", jdk) |
22627
e778e9aaed23
Add support for SPARC/Linux
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
22616
diff
changeset
|
894 if mx.get_os() == 'linux' and platform.processor() == 'sparc64': |
e778e9aaed23
Add support for SPARC/Linux
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
22616
diff
changeset
|
895 # SPARC/Linux |
23983
78bb8eb7ab76
Fix build for Linux/SPARC
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
23978
diff
changeset
|
896 setMakeVar('INCLUDE_TRACE', 'false', env=env) |
78bb8eb7ab76
Fix build for Linux/SPARC
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
23978
diff
changeset
|
897 setMakeVar('DISABLE_COMMERCIAL_FEATURES', 'true', env=env) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
898 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
899 setMakeVar('MAKE_VERBOSE', 'y' if mx._opts.verbose else '') |
24135
a8e0d0625b32
removed defunct support for non-INCLUDE_JVMCI builds
Doug Simon <doug.simon@oracle.com>
parents:
24107
diff
changeset
|
900 version = _suite.release_version() |
a8e0d0625b32
removed defunct support for non-INCLUDE_JVMCI builds
Doug Simon <doug.simon@oracle.com>
parents:
24107
diff
changeset
|
901 setMakeVar('USER_RELEASE_SUFFIX', 'jvmci-' + version) |
a8e0d0625b32
removed defunct support for non-INCLUDE_JVMCI builds
Doug Simon <doug.simon@oracle.com>
parents:
24107
diff
changeset
|
902 setMakeVar('INCLUDE_JVMCI', 'true') |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
903 # setMakeVar('INSTALL', 'y', env=env) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
904 if mx.get_os() == 'darwin' and platform.mac_ver()[0] != '': |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
905 # Force use of clang on MacOS |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
906 setMakeVar('USE_CLANG', 'true') |
22395
63e7eb179710
Set COMPILER_WARNINGS_FATAL=false during HotSpot build on MacOS
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22335
diff
changeset
|
907 setMakeVar('COMPILER_WARNINGS_FATAL', 'false') |
63e7eb179710
Set COMPILER_WARNINGS_FATAL=false during HotSpot build on MacOS
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22335
diff
changeset
|
908 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
909 if mx.get_os() == 'solaris': |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
910 # If using sparcWorks, setup flags to avoid make complaining about CC version |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
911 cCompilerVersion = subprocess.Popen('CC -V', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).stderr.readlines()[0] |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
912 if cCompilerVersion.startswith('CC: Sun C++'): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
913 compilerRev = cCompilerVersion.split(' ')[3] |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
914 setMakeVar('ENFORCE_COMPILER_REV', compilerRev, env=env) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
915 setMakeVar('ENFORCE_CC_COMPILER_REV', compilerRev, env=env) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
916 if self.vmbuild == 'jvmg': |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
917 # We want ALL the symbols when debugging on Solaris |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
918 setMakeVar('STRIP_POLICY', 'no_strip') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
919 # This removes the need to unzip the *.diz files before debugging in gdb |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
920 setMakeVar('ZIP_DEBUGINFO_FILES', '0', env=env) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
921 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
922 if buildSuffix == "1": |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
923 setMakeVar("BUILD_CLIENT_ONLY", "true") |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
924 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
925 # Clear this variable as having it set can cause very confusing build problems |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
926 env.pop('CLASSPATH', None) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
927 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
928 # Issue an env prefix that can be used to run the make on the command line |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
929 if not mx._opts.verbose: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
930 mx.log('--------------- make command line ----------------------') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
931 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
932 envPrefix = ' '.join([key + '=' + env[key] for key in env.iterkeys() if not os.environ.has_key(key) or env[key] != os.environ[key]]) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
933 if len(envPrefix): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
934 mx.log('env ' + envPrefix + ' \\') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
935 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
936 runCmd.append(self.vmbuild + buildSuffix) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
937 runCmd.append("docs") |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
938 # runCmd.append("export_" + build) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
939 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
940 if not mx._opts.verbose: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
941 mx.log(' '.join(runCmd)) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
942 mx.log('--------------------------------------------------------') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
943 mx.run(runCmd, err=filterXusage, env=env) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
944 self._newestOutput = None |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
945 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
946 def needsBuild(self, newestInput): |
22727
9860aa60385f
Fix hotspot build task: needsBuild should check ProjectBuildTask.needsBuild
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22716
diff
changeset
|
947 # Skip super (NativeBuildTask) because it always returns true |
9860aa60385f
Fix hotspot build task: needsBuild should check ProjectBuildTask.needsBuild
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22716
diff
changeset
|
948 (superNeeds, superReason) = mx.ProjectBuildTask.needsBuild(self, newestInput) |
9860aa60385f
Fix hotspot build task: needsBuild should check ProjectBuildTask.needsBuild
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22716
diff
changeset
|
949 if superNeeds: |
9860aa60385f
Fix hotspot build task: needsBuild should check ProjectBuildTask.needsBuild
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22716
diff
changeset
|
950 return (superNeeds, superReason) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
951 newestOutput = self.newestOutput() |
22672
1bbd4a7c274b
Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
22671
diff
changeset
|
952 for d in ['src', 'make', join('jvmci', 'jdk.vm.ci.hotspot', 'src_gen', 'hotspot')]: # TODO should this be replaced by a dependency to the project? |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
953 for root, dirnames, files in os.walk(join(_suite.dir, d)): |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
954 # ignore src/share/tools |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
955 if root == join(_suite.dir, 'src', 'share'): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
956 dirnames.remove('tools') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
957 for f in (join(root, name) for name in files): |
22413
454a38908a59
newestInput parameter to HotSpotBuildTask.needsBuild() is a TimeStampFile as of mx 5.3.3
Doug Simon <doug.simon@oracle.com>
parents:
22400
diff
changeset
|
958 ts = mx.TimeStampFile(f) |
454a38908a59
newestInput parameter to HotSpotBuildTask.needsBuild() is a TimeStampFile as of mx 5.3.3
Doug Simon <doug.simon@oracle.com>
parents:
22400
diff
changeset
|
959 if newestOutput: |
454a38908a59
newestInput parameter to HotSpotBuildTask.needsBuild() is a TimeStampFile as of mx 5.3.3
Doug Simon <doug.simon@oracle.com>
parents:
22400
diff
changeset
|
960 if not newestOutput.exists(): |
454a38908a59
newestInput parameter to HotSpotBuildTask.needsBuild() is a TimeStampFile as of mx 5.3.3
Doug Simon <doug.simon@oracle.com>
parents:
22400
diff
changeset
|
961 return (True, '{} does not exist'.format(newestOutput)) |
454a38908a59
newestInput parameter to HotSpotBuildTask.needsBuild() is a TimeStampFile as of mx 5.3.3
Doug Simon <doug.simon@oracle.com>
parents:
22400
diff
changeset
|
962 if ts.isNewerThan(newestOutput): |
454a38908a59
newestInput parameter to HotSpotBuildTask.needsBuild() is a TimeStampFile as of mx 5.3.3
Doug Simon <doug.simon@oracle.com>
parents:
22400
diff
changeset
|
963 return (True, '{} is newer than {}'.format(ts, newestOutput)) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
964 return (False, None) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
965 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
966 def buildForbidden(self): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
967 if mx.NativeBuildTask.buildForbidden(self): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
968 return True |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
969 if self.vm == 'original': |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
970 if self.vmbuild != 'product': |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
971 mx.log('only product build of original VM exists') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
972 return True |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
973 if not isVMSupported(self.vm): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
974 mx.log('The ' + self.vm + ' VM is not supported on this platform - skipping') |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
975 return True |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
976 return False |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
977 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
978 def clean(self, forBuild=False): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
979 if forBuild: # Let make handle incremental builds |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
980 return |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
981 def handleRemoveReadonly(func, path, exc): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
982 excvalue = exc[1] |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
983 if mx.get_os() == 'windows' and func in (os.rmdir, os.remove) and excvalue.errno == errno.EACCES: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
984 os.chmod(path, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) # 0777 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
985 func(path) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
986 else: |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
987 raise |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
988 |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
989 def rmIfExists(name): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
990 if os.path.isdir(name): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
991 shutil.rmtree(name, ignore_errors=False, onerror=handleRemoveReadonly) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
992 elif os.path.isfile(name): |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
993 os.unlink(name) |
22646
3af40fab60c2
Use make clean to clean hotspot build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22627
diff
changeset
|
994 makeFiles = join(_suite.dir, 'make') |
3af40fab60c2
Use make clean to clean hotspot build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22627
diff
changeset
|
995 if mx._opts.verbose: |
3af40fab60c2
Use make clean to clean hotspot build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22627
diff
changeset
|
996 outCapture = None |
3af40fab60c2
Use make clean to clean hotspot build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22627
diff
changeset
|
997 else: |
3af40fab60c2
Use make clean to clean hotspot build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22627
diff
changeset
|
998 def _consume(s): |
3af40fab60c2
Use make clean to clean hotspot build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22627
diff
changeset
|
999 pass |
3af40fab60c2
Use make clean to clean hotspot build
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22627
diff
changeset
|
1000 outCapture = _consume |
22671
97f30e4d0e95
Pass ARCH_DATA_MODEL to make clean
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22670
diff
changeset
|
1001 mx.run([mx.gmake_cmd(), 'ARCH_DATA_MODEL=64', 'ALT_BOOTDIR=' + get_jvmci_bootstrap_jdk().home, 'clean'], out=outCapture, cwd=makeFiles) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
1002 rmIfExists(_jdksDir()) |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
1003 self._newestOutput = None |
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
1004 |
4577
bc8b58c11768
Added debug build of HotSpot Client to the gate.
Doug Simon <doug.simon@oracle.com>
parents:
4575
diff
changeset
|
1005 def build(args, vm=None): |
4575
ccb5369481a2
Clarified mx help text on how to build/run [Graal|Client|Server].
Doug Simon <doug.simon@oracle.com>
parents:
4572
diff
changeset
|
1006 """build the VM binary |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
1007 |
11392
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1008 The global '--vm' and '--vmbuild' options select which VM type and build target to build.""" |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1009 |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1010 # Override to fail quickly if extra arguments are given |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1011 # at the end of the command line. This allows for a more |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1012 # helpful error message. |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1013 class AP(ArgumentParser): |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1014 def __init__(self): |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1015 ArgumentParser.__init__(self, prog='mx build') |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1016 def parse_args(self, args): |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1017 result = ArgumentParser.parse_args(self, args) |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1018 if len(result.remainder) != 0: |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1019 firstBuildTarget = result.remainder[0] |
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1020 mx.abort('To specify the ' + firstBuildTarget + ' VM build target, you need to use the global "--vmbuild" option. For example:\n' + |
23343
c8526451bb6b
register DEFAULT_VM as env var to be captured in IDE configs
Doug Simon <doug.simon@oracle.com>
parents:
23332
diff
changeset
|
1021 ' mx --vmbuild=' + firstBuildTarget + ' build') |
11392
66251d9f62ab
fail faster with better error message if deprecated and unsupported mx build command line is given
Doug Simon <doug.simon@oracle.com>
parents:
11377
diff
changeset
|
1022 return result |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
1023 |
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
1024 # Call mx.build to compile the Java sources |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1025 parser = AP() |
9116
e2dae636732a
added 'mx buildvars' command to list (some of) the variables that can be passed to 'mx build' with the -D option
Doug Simon <doug.simon@oracle.com>
parents:
9098
diff
changeset
|
1026 parser.add_argument('-D', action='append', help='set a HotSpot build variable (run \'mx buildvars\' to list variables)', metavar='name=value') |
21791
cd36556e1b78
Remove conditional makefile-based compilation of jvmci from mx_graal.py
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
21790
diff
changeset
|
1027 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
1028 # initialize jdk |
22492
f22fd96605ee
renamed get_jvmci_jdk to get_jvmci_jdk_dir and where relevant, variables named jdk to jdkDir
Doug Simon <doug.simon@oracle.com>
parents:
22491
diff
changeset
|
1029 get_jvmci_jdk_dir(create=True) |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
1030 |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
1031 mx.build(['--source', '1.7'] + args, parser=parser) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1032 |
22672
1bbd4a7c274b
Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
22671
diff
changeset
|
1033 mx_gate.add_jacoco_includes(['jdk.vm.ci.*']) |
5257
a549662f6c6f
added 'vmg' and 'vmfg' commands to mx as convenient aliases for running the debug and fastdebug builds of the selected VM
Doug Simon <doug.simon@oracle.com>
parents:
5245
diff
changeset
|
1034 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1035 def run_vm(args, vm=None, nonZeroIsFatal=True, out=None, err=None, cwd=None, timeout=None, vmbuild=None): |
22758
a130b51efb07
removed @Option mechanism from JVMCI (GRAAL-1371)
Doug Simon <doug.simon@oracle.com>
parents:
22732
diff
changeset
|
1036 """run a Java program by executing the java executable in a JVMCI JDK""" |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1037 jdkTag = mx.get_jdk_option().tag |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1038 if jdkTag and jdkTag != _JVMCI_JDK_TAG: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1039 mx.abort('The "--jdk" option must have the tag "' + _JVMCI_JDK_TAG + '" when running a command requiring a JVMCI VM') |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1040 jdk = get_jvmci_jdk(vmbuild=vmbuild) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1041 return jdk.run_java(args, vm=vm, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd, timeout=timeout) |
3718 | 1042 |
22182
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1043 def _unittest_config_participant(config): |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1044 vmArgs, mainClass, mainClassArgs = config |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1045 if isJVMCIEnabled(get_vm()): |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1046 # Remove entries from class path that are in JVMCI loaded jars |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1047 cpIndex, cp = mx.find_classpath_arg(vmArgs) |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1048 if cp: |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1049 excluded = set() |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1050 for jdkDist in jdkDeployedDists: |
22281
2333f2f5baed
Fixes for new jdkDeployedDists model in _unittest_config_participant
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22280
diff
changeset
|
1051 dist = jdkDist.dist() |
22182
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1052 excluded.update([d.output_dir() for d in dist.archived_deps() if d.isJavaProject()]) |
22707
829a9e1ccf23
mx: exclude JVMCI jars from unit test class path
Doug Simon <doug.simon@oracle.com>
parents:
22695
diff
changeset
|
1053 excluded.add(dist.path) |
22182
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1054 cp = os.pathsep.join([e for e in cp.split(os.pathsep) if e not in excluded]) |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1055 vmArgs[cpIndex] = cp |
18351 | 1056 |
22182
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1057 # Run the VM in a mode where application/test classes can |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1058 # access JVMCI loaded classes. |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1059 vmArgs = ['-XX:-UseJVMCIClassLoader'] + vmArgs |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1060 return (vmArgs, mainClass, mainClassArgs) |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1061 return config |
16395
ad431bf0de07
added support to load classes from graal.jar with a separate class loader
Doug Simon <doug.simon@oracle.com>
parents:
16394
diff
changeset
|
1062 |
22182
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1063 def _unittest_vm_launcher(vmArgs, mainClass, mainClassArgs): |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1064 run_vm(vmArgs + [mainClass] + mainClassArgs) |
22182
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1065 |
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1066 mx_unittest.add_config_participant(_unittest_config_participant) |
8340
d9d883aeb96f
unittest: seperate target `longunittest' and `shortunittest'
Bernhard Urban <bernhard.urban@jku.at>
parents:
8317
diff
changeset
|
1067 |
d9d883aeb96f
unittest: seperate target `longunittest' and `shortunittest'
Bernhard Urban <bernhard.urban@jku.at>
parents:
8317
diff
changeset
|
1068 def shortunittest(args): |
22020
36a7ec14279d
moved unit test support from mx_graal.py to mx.py
Doug Simon <doug.simon@oracle.com>
parents:
22019
diff
changeset
|
1069 """alias for 'unittest --whitelist test/whitelist_shortunittest.txt'""" |
8340
d9d883aeb96f
unittest: seperate target `longunittest' and `shortunittest'
Bernhard Urban <bernhard.urban@jku.at>
parents:
8317
diff
changeset
|
1070 |
15324
5b5f47104c0d
mx: add whitelist for shortunittest
Bernhard Urban <bernhard.urban@jku.at>
parents:
15323
diff
changeset
|
1071 args = ['--whitelist', 'test/whitelist_shortunittest.txt'] + args |
22182
9bbd878b17af
use unittest extensibility
Doug Simon <doug.simon@oracle.com>
parents:
22181
diff
changeset
|
1072 mx_unittest.unittest(args) |
8340
d9d883aeb96f
unittest: seperate target `longunittest' and `shortunittest'
Bernhard Urban <bernhard.urban@jku.at>
parents:
8317
diff
changeset
|
1073 |
4584
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1074 def buildvms(args): |
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1075 """build one or more VMs in various configurations""" |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
1076 |
11296
4e943a311d9c
mx presents a command line dialogue to select the default VM if it is not configured (GRAAL-416)
Doug Simon <doug.simon@oracle.com>
parents:
11287
diff
changeset
|
1077 vmsDefault = ','.join(_vmChoices.keys()) |
9095
d538dce8f403
support for non-GRAAL VMs co-existing with GRAAL VMs
Doug Simon <doug.simon@oracle.com>
parents:
9010
diff
changeset
|
1078 vmbuildsDefault = ','.join(_vmbuildChoices) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1079 |
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1080 parser = ArgumentParser(prog='mx buildvms') |
9095
d538dce8f403
support for non-GRAAL VMs co-existing with GRAAL VMs
Doug Simon <doug.simon@oracle.com>
parents:
9010
diff
changeset
|
1081 parser.add_argument('--vms', help='a comma separated list of VMs to build (default: ' + vmsDefault + ')', metavar='<args>', default=vmsDefault) |
d538dce8f403
support for non-GRAAL VMs co-existing with GRAAL VMs
Doug Simon <doug.simon@oracle.com>
parents:
9010
diff
changeset
|
1082 parser.add_argument('--builds', help='a comma separated list of build types (default: ' + vmbuildsDefault + ')', metavar='<args>', default=vmbuildsDefault) |
9096
d4b868ed9cfb
buildvms command now runs "java -version" for each VM built unless -n option is specified
Doug Simon <doug.simon@oracle.com>
parents:
9095
diff
changeset
|
1083 parser.add_argument('-n', '--no-check', action='store_true', help='omit running "java -version" after each build') |
9097
a0ab945fb95f
build output during buildvms command is sent to console (instead of log files) if -c option is given
Doug Simon <doug.simon@oracle.com>
parents:
9096
diff
changeset
|
1084 parser.add_argument('-c', '--console', action='store_true', help='send build output to console instead of log file') |
4584
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1085 |
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1086 args = parser.parse_args(args) |
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1087 vms = args.vms.split(',') |
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1088 builds = args.builds.split(',') |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
1089 |
4584
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1090 allStart = time.time() |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1091 for vm in vms: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1092 if not isVMSupported(vm): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1093 mx.log('The ' + vm + ' VM is not supported on this platform - skipping') |
14602
591f4a575ebf
issue warning/error where ever relevant if a non-supported VM (e.g., client VM on Mac) is used in mx
Doug Simon <doug.simon@oracle.com>
parents:
14595
diff
changeset
|
1094 continue |
591f4a575ebf
issue warning/error where ever relevant if a non-supported VM (e.g., client VM on Mac) is used in mx
Doug Simon <doug.simon@oracle.com>
parents:
14595
diff
changeset
|
1095 |
4584
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1096 for vmbuild in builds: |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1097 if vm == 'original' and vmbuild != 'product': |
9095
d538dce8f403
support for non-GRAAL VMs co-existing with GRAAL VMs
Doug Simon <doug.simon@oracle.com>
parents:
9010
diff
changeset
|
1098 continue |
9097
a0ab945fb95f
build output during buildvms command is sent to console (instead of log files) if -c option is given
Doug Simon <doug.simon@oracle.com>
parents:
9096
diff
changeset
|
1099 if not args.console: |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1100 logFile = join(vm + '-' + vmbuild + '.log') |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
1101 log = open(join(_suite.dir, logFile), 'wb') |
9097
a0ab945fb95f
build output during buildvms command is sent to console (instead of log files) if -c option is given
Doug Simon <doug.simon@oracle.com>
parents:
9096
diff
changeset
|
1102 start = time.time() |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1103 mx.log('BEGIN: ' + vm + '-' + vmbuild + '\t(see: ' + logFile + ')') |
17317
f434913f9cba
mx: buildvms should inherit verbosity
Bernhard Urban <bernhard.urban@jku.at>
parents:
17307
diff
changeset
|
1104 verbose = ['-v'] if mx._opts.verbose else [] |
9097
a0ab945fb95f
build output during buildvms command is sent to console (instead of log files) if -c option is given
Doug Simon <doug.simon@oracle.com>
parents:
9096
diff
changeset
|
1105 # Run as subprocess so that output can be directed to a file |
23343
c8526451bb6b
register DEFAULT_VM as env var to be captured in IDE configs
Doug Simon <doug.simon@oracle.com>
parents:
23332
diff
changeset
|
1106 cmd = [sys.executable, '-u', mx.__file__] + verbose + ['--vm=' + vm, '--vmbuild=' + vmbuild, 'build'] |
17317
f434913f9cba
mx: buildvms should inherit verbosity
Bernhard Urban <bernhard.urban@jku.at>
parents:
17307
diff
changeset
|
1107 mx.logv("executing command: " + str(cmd)) |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
1108 subprocess.check_call(cmd, cwd=_suite.dir, stdout=log, stderr=subprocess.STDOUT) |
9097
a0ab945fb95f
build output during buildvms command is sent to console (instead of log files) if -c option is given
Doug Simon <doug.simon@oracle.com>
parents:
9096
diff
changeset
|
1109 duration = datetime.timedelta(seconds=time.time() - start) |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1110 mx.log('END: ' + vm + '-' + vmbuild + '\t[' + str(duration) + ']') |
9097
a0ab945fb95f
build output during buildvms command is sent to console (instead of log files) if -c option is given
Doug Simon <doug.simon@oracle.com>
parents:
9096
diff
changeset
|
1111 else: |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1112 with VM(vm, vmbuild): |
22292 | 1113 build([]) |
9096
d4b868ed9cfb
buildvms command now runs "java -version" for each VM built unless -n option is specified
Doug Simon <doug.simon@oracle.com>
parents:
9095
diff
changeset
|
1114 if not args.no_check: |
d4b868ed9cfb
buildvms command now runs "java -version" for each VM built unless -n option is specified
Doug Simon <doug.simon@oracle.com>
parents:
9095
diff
changeset
|
1115 vmargs = ['-version'] |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1116 run_vm(vmargs, vm=vm, vmbuild=vmbuild) |
4584
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1117 allDuration = datetime.timedelta(seconds=time.time() - allStart) |
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1118 mx.log('TOTAL TIME: ' + '[' + str(allDuration) + ']') |
7e5d8d1c74a1
Modified JDK replication process such that a copy of the default VM is made. This prevents issues with the replicated JDK being used to bootstrap a HotSpot build.
Doug Simon <doug.simon@oracle.com>
parents:
4582
diff
changeset
|
1119 |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
1120 |
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
1121 def _jvmci_gate_runner(args, tasks): |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1122 # Build server-jvmci now so we can run the unit tests |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1123 with Task('BuildHotSpotJVMCI: product', tasks) as t: |
22326
f150f5e00ccd
Remove unused --check-distributions option.
Roland Schatz <roland.schatz@oracle.com>
parents:
22323
diff
changeset
|
1124 if t: buildvms(['--vms', 'server', '--builds', 'product']) |
11756
78e6109ee411
mx refactoring for split-repo suites; should have no effect on existing repos
Mick Jordan <mick.jordan@oracle.com>
parents:
11605
diff
changeset
|
1125 |
21559
be896a1983c0
recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21554
diff
changeset
|
1126 # Run unit tests on server-hosted-jvmci |
19162
32c7a5a88523
Run unit tests even earlier during gate
Doug Simon <doug.simon@oracle.com>
parents:
19160
diff
changeset
|
1127 with VM('server', 'product'): |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1128 with JVMCIMode('hosted'): |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1129 with Task('JVMCI UnitTests: hosted-product', tasks) as t: |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1130 if t: unittest(['--suite', 'jvmci', '--enable-timing', '--verbose', '--fail-fast']) |
19160
d4f80cf249d0
Run unittest earlier during gate
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
19044
diff
changeset
|
1131 |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1132 # Build the fastdebug VM |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1133 with Task('BuildHotSpotJVMCI: fastdebug', tasks) as t: |
23993
7b65bd0ebeb7
removed duplicate registration of StubRoutines::_multiplyToLen in vmstructs
Doug Simon <doug.simon@oracle.com>
parents:
23983
diff
changeset
|
1134 if t: |
7b65bd0ebeb7
removed duplicate registration of StubRoutines::_multiplyToLen in vmstructs
Doug Simon <doug.simon@oracle.com>
parents:
23983
diff
changeset
|
1135 buildvms(['--vms', 'server', '--builds', 'fastdebug']) |
7b65bd0ebeb7
removed duplicate registration of StubRoutines::_multiplyToLen in vmstructs
Doug Simon <doug.simon@oracle.com>
parents:
23983
diff
changeset
|
1136 run_vm(['-XX:+ExecuteInternalVMTests', '-version'], vm='server', vmbuild='fastdebug') |
21559
be896a1983c0
recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21554
diff
changeset
|
1137 |
21566 | 1138 # Prevent JVMCI modifications from breaking the standard builds |
1139 if args.buildNonJVMCI: | |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
1140 with Task('BuildHotSpotVarieties', tasks, disableJacoco=True) as t: |
20000
e8a0a61526b2
added support for refining the tasks run by 'mx gate' (e.g., 'mx gate -t Economy' will only run tasks whose title contains the substring 'Economy')
Doug Simon <doug.simon@oracle.com>
parents:
19796
diff
changeset
|
1141 if t: |
e8a0a61526b2
added support for refining the tasks run by 'mx gate' (e.g., 'mx gate -t Economy' will only run tasks whose title contains the substring 'Economy')
Doug Simon <doug.simon@oracle.com>
parents:
19796
diff
changeset
|
1142 buildvms(['--vms', 'client,server', '--builds', 'fastdebug,product']) |
11756
78e6109ee411
mx refactoring for split-repo suites; should have no effect on existing repos
Mick Jordan <mick.jordan@oracle.com>
parents:
11605
diff
changeset
|
1143 |
22291
ccee68149d93
added --all-suites option to gate
Doug Simon <doug.simon@oracle.com>
parents:
22290
diff
changeset
|
1144 mx_gate.add_gate_runner(_suite, _jvmci_gate_runner) |
22286
2ecfec90e51e
moved gate from mx_jvmci.py to mx_gate.py in core mx
Doug Simon <doug.simon@oracle.com>
parents:
22284
diff
changeset
|
1145 mx_gate.add_gate_argument('-g', '--only-build-jvmci', action='store_false', dest='buildNonJVMCI', help='only build the JVMCI VM') |
20000
e8a0a61526b2
added support for refining the tasks run by 'mx gate' (e.g., 'mx gate -t Economy' will only run tasks whose title contains the substring 'Economy')
Doug Simon <doug.simon@oracle.com>
parents:
19796
diff
changeset
|
1146 |
6340
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1147 def deoptalot(args): |
22108
51ceda0cf404
mx: make deoptalot command more flexible in terms of VM management
Doug Simon <doug.simon@oracle.com>
parents:
22099
diff
changeset
|
1148 """bootstrap a VM with DeoptimizeALot and VerifyOops on |
6340
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1149 |
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1150 If the first argument is a number, the process will be repeated |
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1151 this number of times. All other arguments are passed to the VM.""" |
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1152 count = 1 |
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1153 if len(args) > 0 and args[0].isdigit(): |
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1154 count = int(args[0]) |
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1155 del args[0] |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1156 |
7509 | 1157 for _ in range(count): |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1158 if not run_vm(['-XX:-TieredCompilation', '-XX:+DeoptimizeALot', '-XX:+VerifyOops'] + args + ['-version']) == 0: |
6340
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1159 mx.abort("Failed") |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1160 |
6340
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1161 def longtests(args): |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1162 |
6340
74560fdffd51
Add a draft longtests command to mc's commands
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6319
diff
changeset
|
1163 deoptalot(['15', '-Xmx48m']) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1164 |
21165
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1165 def _igvJdk(): |
18893
19d99eec8876
Fix mx igv: do not use Java < 1.8, handle the case where no JDKs are supported. Give some hints when the igv ant build fails.
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
18876
diff
changeset
|
1166 v8u20 = mx.VersionSpec("1.8.0_20") |
19d99eec8876
Fix mx igv: do not use Java < 1.8, handle the case where no JDKs are supported. Give some hints when the igv ant build fails.
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
18876
diff
changeset
|
1167 v8u40 = mx.VersionSpec("1.8.0_40") |
19d99eec8876
Fix mx igv: do not use Java < 1.8, handle the case where no JDKs are supported. Give some hints when the igv ant build fails.
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
18876
diff
changeset
|
1168 v8 = mx.VersionSpec("1.8") |
21165
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1169 def _igvJdkVersionCheck(version): |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1170 return version >= v8 and (version < v8u20 or version >= v8u40) |
22327
2c352e8d76ec
Fix 'mx igv' command.
Roland Schatz <roland.schatz@oracle.com>
parents:
22326
diff
changeset
|
1171 return mx.get_jdk(_igvJdkVersionCheck, versionDescription='>= 1.8 and < 1.8.0u20 or >= 1.8.0u40', purpose="building & running IGV").home |
21165
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1172 |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1173 def _igvBuildEnv(): |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1174 # When the http_proxy environment variable is set, convert it to the proxy settings that ant needs |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1175 env = dict(os.environ) |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1176 proxy = os.environ.get('http_proxy') |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1177 if not (proxy is None) and len(proxy) > 0: |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1178 if '://' in proxy: |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1179 # Remove the http:// prefix (or any other protocol prefix) |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1180 proxy = proxy.split('://', 1)[1] |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1181 # Separate proxy server name and port number |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1182 proxyName, proxyPort = proxy.split(':', 1) |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1183 proxyEnv = '-DproxyHost="' + proxyName + '" -DproxyPort=' + proxyPort |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1184 env['ANT_OPTS'] = proxyEnv |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1185 |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1186 env['JAVA_HOME'] = _igvJdk() |
17388
9e5abd0e7916
mx/igv: fallback mechanism to work around a javac bug in jdk8u20
Bernhard Urban <bernhard.urban@jku.at>
parents:
17372
diff
changeset
|
1187 return env |
9e5abd0e7916
mx/igv: fallback mechanism to work around a javac bug in jdk8u20
Bernhard Urban <bernhard.urban@jku.at>
parents:
17372
diff
changeset
|
1188 |
5089
206e68bb66c6
Made the IdealGraphVisualizer runnable from mx with new 'igv' command.
Doug Simon <doug.simon@oracle.com>
parents:
5064
diff
changeset
|
1189 def igv(args): |
206e68bb66c6
Made the IdealGraphVisualizer runnable from mx with new 'igv' command.
Doug Simon <doug.simon@oracle.com>
parents:
5064
diff
changeset
|
1190 """run the Ideal Graph Visualizer""" |
23321
fc1036575a76
make paths in IGV error message absolute
Doug Simon <doug.simon@oracle.com>
parents:
23319
diff
changeset
|
1191 logFile = join(_suite.dir, '.ideal_graph_visualizer.log') |
fc1036575a76
make paths in IGV error message absolute
Doug Simon <doug.simon@oracle.com>
parents:
23319
diff
changeset
|
1192 with open(logFile, 'w') as fp: |
10568
070b4a3c56f3
disabled "noisy" log statements unless -v option (i.e. verbose) is specified to mx
Doug Simon <doug.simon@oracle.com>
parents:
10527
diff
changeset
|
1193 mx.logv('[Ideal Graph Visualizer log is in ' + fp.name + ']') |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
1194 nbplatform = join(_suite.dir, 'src', 'share', 'tools', 'IdealGraphVisualizer', 'nbplatform') |
13472
72e2ec923b7b
added support to replace NetBeans platform used by IGV if it is out of date (GRAAL-420)
Doug Simon <doug.simon@oracle.com>
parents:
13471
diff
changeset
|
1195 |
72e2ec923b7b
added support to replace NetBeans platform used by IGV if it is out of date (GRAAL-420)
Doug Simon <doug.simon@oracle.com>
parents:
13471
diff
changeset
|
1196 # Remove NetBeans platform if it is earlier than the current supported version |
72e2ec923b7b
added support to replace NetBeans platform used by IGV if it is out of date (GRAAL-420)
Doug Simon <doug.simon@oracle.com>
parents:
13471
diff
changeset
|
1197 if exists(nbplatform): |
19430
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1198 updateTrackingFile = join(nbplatform, 'platform', 'update_tracking', 'org-netbeans-core.xml') |
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1199 if not exists(updateTrackingFile): |
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1200 mx.log('Could not find \'' + updateTrackingFile + '\', removing NetBeans platform') |
13472
72e2ec923b7b
added support to replace NetBeans platform used by IGV if it is out of date (GRAAL-420)
Doug Simon <doug.simon@oracle.com>
parents:
13471
diff
changeset
|
1201 shutil.rmtree(nbplatform) |
19430
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1202 else: |
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1203 dom = xml.dom.minidom.parse(updateTrackingFile) |
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1204 currentVersion = mx.VersionSpec(dom.getElementsByTagName('module_version')[0].getAttribute('specification_version')) |
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1205 supportedVersion = mx.VersionSpec('3.43.1') |
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1206 if currentVersion < supportedVersion: |
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1207 mx.log('Replacing NetBeans platform version ' + str(currentVersion) + ' with version ' + str(supportedVersion)) |
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1208 shutil.rmtree(nbplatform) |
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1209 elif supportedVersion < currentVersion: |
9f037830060a
Make mx igv more robust against bad nbplatform states
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
19335
diff
changeset
|
1210 mx.log('Supported NetBeans version in igv command should be updated to ' + str(currentVersion)) |
13472
72e2ec923b7b
added support to replace NetBeans platform used by IGV if it is out of date (GRAAL-420)
Doug Simon <doug.simon@oracle.com>
parents:
13471
diff
changeset
|
1211 |
72e2ec923b7b
added support to replace NetBeans platform used by IGV if it is out of date (GRAAL-420)
Doug Simon <doug.simon@oracle.com>
parents:
13471
diff
changeset
|
1212 if not exists(nbplatform): |
72e2ec923b7b
added support to replace NetBeans platform used by IGV if it is out of date (GRAAL-420)
Doug Simon <doug.simon@oracle.com>
parents:
13471
diff
changeset
|
1213 mx.logv('[This execution may take a while as the NetBeans platform needs to be downloaded]') |
21165
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1214 |
bdeaa5a7b83c
Look for JDKs on demand, add --strict-compliance flag. Allow more precise search for JDK versions (use it for IGV)
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21122
diff
changeset
|
1215 env = _igvBuildEnv() |
18983
43baadc1913a
Automatically install Batik for SVG export in IGV
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18931
diff
changeset
|
1216 # make the jar for Batik 1.7 available. |
43baadc1913a
Automatically install Batik for SVG export in IGV
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18931
diff
changeset
|
1217 env['IGV_BATIK_JAR'] = mx.library('BATIK').get_path(True) |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
1218 if mx.run(['ant', '-f', mx._cygpathU2W(join(_suite.dir, 'src', 'share', 'tools', 'IdealGraphVisualizer', 'build.xml')), '-l', mx._cygpathU2W(fp.name), 'run'], env=env, nonZeroIsFatal=False): |
23321
fc1036575a76
make paths in IGV error message absolute
Doug Simon <doug.simon@oracle.com>
parents:
23319
diff
changeset
|
1219 mx.abort("IGV ant build & launch failed. Check '" + logFile + "'. You can also try to delete " + join(_suite.dir, 'src/share/tools/IdealGraphVisualizer/nbplatform') + ".") |
14116
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1220 |
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1221 def c1visualizer(args): |
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1222 """run the Cl Compiler Visualizer""" |
22674
5ef7110c63bd
moved unzipped c1visualizer distribution and downloaded hsdis to mxbuild/ directory
Doug Simon <doug.simon@oracle.com>
parents:
22672
diff
changeset
|
1223 extractPath = join(_suite.get_output_root()) |
14116
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1224 if mx.get_os() == 'windows': |
22674
5ef7110c63bd
moved unzipped c1visualizer distribution and downloaded hsdis to mxbuild/ directory
Doug Simon <doug.simon@oracle.com>
parents:
22672
diff
changeset
|
1225 executable = join(extractPath, 'c1visualizer', 'bin', 'c1visualizer.exe') |
14116
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1226 else: |
22674
5ef7110c63bd
moved unzipped c1visualizer distribution and downloaded hsdis to mxbuild/ directory
Doug Simon <doug.simon@oracle.com>
parents:
22672
diff
changeset
|
1227 executable = join(extractPath, 'c1visualizer', 'bin', 'c1visualizer') |
14116
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1228 |
22674
5ef7110c63bd
moved unzipped c1visualizer distribution and downloaded hsdis to mxbuild/ directory
Doug Simon <doug.simon@oracle.com>
parents:
22672
diff
changeset
|
1229 # Check whether the current C1Visualizer installation is up-to-date |
16599
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1230 if exists(executable) and not exists(mx.library('C1VISUALIZER_DIST').get_path(resolve=False)): |
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1231 mx.log('Updating C1Visualizer') |
22674
5ef7110c63bd
moved unzipped c1visualizer distribution and downloaded hsdis to mxbuild/ directory
Doug Simon <doug.simon@oracle.com>
parents:
22672
diff
changeset
|
1232 shutil.rmtree(join(extractPath, 'c1visualizer')) |
16599
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1233 |
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1234 archive = mx.library('C1VISUALIZER_DIST').get_path(resolve=True) |
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1235 |
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1236 if not exists(executable): |
14116
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1237 zf = zipfile.ZipFile(archive, 'r') |
22674
5ef7110c63bd
moved unzipped c1visualizer distribution and downloaded hsdis to mxbuild/ directory
Doug Simon <doug.simon@oracle.com>
parents:
22672
diff
changeset
|
1238 zf.extractall(extractPath) |
14116
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1239 |
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1240 if not exists(executable): |
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1241 mx.abort('C1Visualizer binary does not exist: ' + executable) |
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1242 |
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1243 if mx.get_os() != 'windows': |
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1244 # Make sure that execution is allowed. The zip file does not always specfiy that correctly |
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1245 os.chmod(executable, 0777) |
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1246 |
be7ebdf41bea
mx: new command to start c1visualizer; support for IGV download when using a proxy server
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14048
diff
changeset
|
1247 mx.run([executable]) |
5089
206e68bb66c6
Made the IdealGraphVisualizer runnable from mx with new 'igv' command.
Doug Simon <doug.simon@oracle.com>
parents:
5064
diff
changeset
|
1248 |
13935
ca0e1af320f6
mx: add support for jmh benchmark suites
Bernhard Urban <bernhard.urban@jku.at>
parents:
13928
diff
changeset
|
1249 |
5596
e4b1bc5e29e0
hsdis library is downloaded into newly created Graal JDK
Doug Simon <doug.simon@oracle.com>
parents:
5517
diff
changeset
|
1250 def hsdis(args, copyToDir=None): |
6291
633136426f26
consolidated jtt command into unittest command and removed need for explicit 'testHarness' property in 'projects' file
Doug Simon <doug.simon@oracle.com>
parents:
6278
diff
changeset
|
1251 """download the hsdis library |
4482
7903b6c28f9c
Add hsdis command to mx
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
4480
diff
changeset
|
1252 |
7903b6c28f9c
Add hsdis command to mx
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
4480
diff
changeset
|
1253 This is needed to support HotSpot's assembly dumping features. |
5596
e4b1bc5e29e0
hsdis library is downloaded into newly created Graal JDK
Doug Simon <doug.simon@oracle.com>
parents:
5517
diff
changeset
|
1254 By default it downloads the Intel syntax version, use the 'att' argument to install AT&T syntax.""" |
23352
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1255 flavor = None |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1256 if mx.get_arch() == "amd64": |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1257 flavor = 'intel' |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1258 if 'att' in args: |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1259 flavor = 'att' |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1260 |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1261 libpattern = mx.add_lib_suffix('hsdis-' + mx.get_arch() + '-' + mx.get_os() + '-%s') |
16599
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1262 |
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1263 sha1s = { |
23352
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1264 'att/hsdis-amd64-windows-%s.dll' : 'bcbd535a9568b5075ab41e96205e26a2bac64f72', |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1265 'att/hsdis-amd64-linux-%s.so' : '36a0b8e30fc370727920cc089f104bfb9cd508a0', |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1266 'att/hsdis-amd64-darwin-%s.dylib' : 'c1865e9a58ca773fdc1c5eea0a4dfda213420ffb', |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1267 'intel/hsdis-amd64-windows-%s.dll' : '6a388372cdd5fe905c1a26ced614334e405d1f30', |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1268 'intel/hsdis-amd64-linux-%s.so' : '0d031013db9a80d6c88330c42c983fbfa7053193', |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1269 'intel/hsdis-amd64-darwin-%s.dylib' : '67f6d23cbebd8998450a88b5bef362171f66f11a', |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1270 'hsdis-sparcv9-solaris-%s.so': '970640a9af0bd63641f9063c11275b371a59ee60', |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1271 'hsdis-sparcv9-linux-%s.so': '0c375986d727651dee1819308fbbc0de4927d5d9', |
16599
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1272 } |
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1273 |
23352
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1274 if flavor: |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1275 flavoredLib = flavor + "/" + libpattern |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1276 else: |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1277 flavoredLib = libpattern |
16976
87fc600ec586
mx: skip downloading hsdis if not available.
Josef Eisl <josef.eisl@jku.at>
parents:
16918
diff
changeset
|
1278 if flavoredLib not in sha1s: |
23352
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1279 mx.warn("hsdis with flavor '{}' not supported on this plattform or architecture".format(flavor)) |
16976
87fc600ec586
mx: skip downloading hsdis if not available.
Josef Eisl <josef.eisl@jku.at>
parents:
16918
diff
changeset
|
1280 return |
87fc600ec586
mx: skip downloading hsdis if not available.
Josef Eisl <josef.eisl@jku.at>
parents:
16918
diff
changeset
|
1281 |
23352
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1282 sha1 = sha1s[flavoredLib] |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1283 lib = flavoredLib % (sha1) |
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1284 path = join(_suite.get_output_root(), lib) |
5189
6fbf12b8e572
automated download of hsdis lib if PrintAssembly option is used; added support for hsdis on the Mac
Doug Simon <doug.simon@oracle.com>
parents:
5153
diff
changeset
|
1285 if not exists(path): |
16599
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1286 sha1path = path + '.sha1' |
23352
3848113e3e6b
Update hsdis binaries
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
23343
diff
changeset
|
1287 mx.download_file_with_sha1('hsdis', path, ['https://lafo.ssw.uni-linz.ac.at/pub/hsdis/' + lib], sha1, sha1path, True, True, sources=False) |
5596
e4b1bc5e29e0
hsdis library is downloaded into newly created Graal JDK
Doug Simon <doug.simon@oracle.com>
parents:
5517
diff
changeset
|
1288 if copyToDir is not None and exists(copyToDir): |
22653
24aa7495fec9
Fix download for hsdis on Linux/SPARC
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
22646
diff
changeset
|
1289 destFileName = mx.add_lib_suffix('hsdis-' + mx.get_arch()) |
24aa7495fec9
Fix download for hsdis on Linux/SPARC
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
22646
diff
changeset
|
1290 shutil.copy(path, copyToDir + os.sep + destFileName) |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
1291 |
5245 | 1292 def hcfdis(args): |
6291
633136426f26
consolidated jtt command into unittest command and removed need for explicit 'testHarness' property in 'projects' file
Doug Simon <doug.simon@oracle.com>
parents:
6278
diff
changeset
|
1293 """disassemble HexCodeFiles embedded in text files |
5245 | 1294 |
1295 Run a tool over the input files to convert all embedded HexCodeFiles | |
1296 to a disassembled format.""" | |
6958
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1297 |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1298 parser = ArgumentParser(prog='mx hcfdis') |
6958
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1299 parser.add_argument('-m', '--map', help='address to symbol map applied to disassembler output') |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1300 parser.add_argument('files', nargs=REMAINDER, metavar='files...') |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1301 |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1302 args = parser.parse_args(args) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1303 |
16599
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1304 path = mx.library('HCFDIS').get_path(resolve=True) |
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1305 mx.run_java(['-cp', path, 'com.oracle.max.hcfdis.HexCodeFileDis'] + args.files) |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1306 |
6958
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1307 if args.map is not None: |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1308 addressRE = re.compile(r'0[xX]([A-Fa-f0-9]+)') |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1309 with open(args.map) as fp: |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1310 lines = fp.read().splitlines() |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1311 symbols = dict() |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1312 for l in lines: |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1313 addressAndSymbol = l.split(' ', 1) |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1314 if len(addressAndSymbol) == 2: |
11514
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1315 address, symbol = addressAndSymbol |
dc3c8df55905
added support for pylint and fixed errors/warnings it found
Doug Simon <doug.simon@oracle.com>
parents:
11512
diff
changeset
|
1316 if address.startswith('0x'): |
6958
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1317 address = long(address, 16) |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1318 symbols[address] = symbol |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1319 for f in args.files: |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1320 with open(f) as fp: |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1321 lines = fp.read().splitlines() |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1322 updated = False |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1323 for i in range(0, len(lines)): |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1324 l = lines[i] |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1325 for m in addressRE.finditer(l): |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1326 sval = m.group(0) |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1327 val = long(sval, 16) |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1328 sym = symbols.get(val) |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1329 if sym: |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1330 l = l.replace(sval, sym) |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1331 updated = True |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1332 lines[i] = l |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1333 if updated: |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1334 mx.log('updating ' + f) |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1335 with open('new_' + f, "w") as fp: |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1336 for l in lines: |
abbe4faaf0c1
added support for dumping an address to symbol map (with -G:+PrintAddressMap) to translate addresses in disassembled output (via new '-m' option to the hcfdis command)
Doug Simon <doug.simon@oracle.com>
parents:
6718
diff
changeset
|
1337 print >> fp, l |
5245 | 1338 |
21559
be896a1983c0
recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21554
diff
changeset
|
1339 def isJVMCIEnabled(vm): |
24135
a8e0d0625b32
removed defunct support for non-INCLUDE_JVMCI builds
Doug Simon <doug.simon@oracle.com>
parents:
24107
diff
changeset
|
1340 return vm != 'original' |
9803
8e33b4ebfef1
add isGraalEnabled(vm) function in commands.py
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
9667
diff
changeset
|
1341 |
16167
1f4955abca9b
mx: add jol command for java object layout introspection
Andreas Woess <andreas.woess@jku.at>
parents:
16117
diff
changeset
|
1342 def jol(args): |
1f4955abca9b
mx: add jol command for java object layout introspection
Andreas Woess <andreas.woess@jku.at>
parents:
16117
diff
changeset
|
1343 """Java Object Layout""" |
16599
89be7c4db12c
made sha1 signatures mandatory for libraries; made libraries for all downloading performed by commands in mx_graal
Doug Simon <doug.simon@oracle.com>
parents:
16499
diff
changeset
|
1344 joljar = mx.library('JOL_INTERNALS').get_path(resolve=True) |
16167
1f4955abca9b
mx: add jol command for java object layout introspection
Andreas Woess <andreas.woess@jku.at>
parents:
16117
diff
changeset
|
1345 candidates = mx.findclass(args, logToConsole=False, matcher=lambda s, classname: s == classname or classname.endswith('.' + s) or classname.endswith('$' + s)) |
18218
8588db09f5e9
mx jol: let user select from found classes, skip duplicates
Andreas Woess <andreas.woess@jku.at>
parents:
18163
diff
changeset
|
1346 |
8588db09f5e9
mx jol: let user select from found classes, skip duplicates
Andreas Woess <andreas.woess@jku.at>
parents:
18163
diff
changeset
|
1347 if len(candidates) > 0: |
18601
676f1800077c
mx: removed unused _read_projects_file function
Doug Simon <doug.simon@oracle.com>
parents:
18414
diff
changeset
|
1348 candidates = mx.select_items(sorted(candidates)) |
18218
8588db09f5e9
mx jol: let user select from found classes, skip duplicates
Andreas Woess <andreas.woess@jku.at>
parents:
18163
diff
changeset
|
1349 else: |
8588db09f5e9
mx jol: let user select from found classes, skip duplicates
Andreas Woess <andreas.woess@jku.at>
parents:
18163
diff
changeset
|
1350 # mx.findclass can be mistaken, don't give up yet |
8588db09f5e9
mx jol: let user select from found classes, skip duplicates
Andreas Woess <andreas.woess@jku.at>
parents:
18163
diff
changeset
|
1351 candidates = args |
16167
1f4955abca9b
mx: add jol command for java object layout introspection
Andreas Woess <andreas.woess@jku.at>
parents:
16117
diff
changeset
|
1352 |
23408
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
1353 run_vm(['-javaagent:' + joljar, '-cp', os.pathsep.join([mx.classpath(jdk=get_jvmci_jdk()), joljar]), "org.openjdk.jol.MainObjectInternals"] + candidates) |
16167
1f4955abca9b
mx: add jol command for java object layout introspection
Andreas Woess <andreas.woess@jku.at>
parents:
16117
diff
changeset
|
1354 |
23307
c75c5e73fd65
Deploy all JVM_{product,fastdebug}_{jvmci,server} variants.
Roland Schatz <roland.schatz@oracle.com>
parents:
23301
diff
changeset
|
1355 def deploy_binary(args): |
c75c5e73fd65
Deploy all JVM_{product,fastdebug}_{jvmci,server} variants.
Roland Schatz <roland.schatz@oracle.com>
parents:
23301
diff
changeset
|
1356 for vmbuild in ['product', 'fastdebug']: |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1357 for vm in ['server']: |
23308
b9114ca0c174
Fix bug in deploy_binary.
Roland Schatz <roland.schatz@oracle.com>
parents:
23307
diff
changeset
|
1358 if vmbuild != _vmbuild or vm != get_vm(): |
23307
c75c5e73fd65
Deploy all JVM_{product,fastdebug}_{jvmci,server} variants.
Roland Schatz <roland.schatz@oracle.com>
parents:
23301
diff
changeset
|
1359 mx.instantiateDistribution('JVM_<vmbuild>_<vm>', dict(vmbuild=vmbuild, vm=vm)) |
c75c5e73fd65
Deploy all JVM_{product,fastdebug}_{jvmci,server} variants.
Roland Schatz <roland.schatz@oracle.com>
parents:
23301
diff
changeset
|
1360 mx.deploy_binary(args) |
c75c5e73fd65
Deploy all JVM_{product,fastdebug}_{jvmci,server} variants.
Roland Schatz <roland.schatz@oracle.com>
parents:
23301
diff
changeset
|
1361 |
22167
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1362 mx.update_commands(_suite, { |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1363 'build': [build, ''], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1364 'buildvars': [buildvars, ''], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1365 'buildvms': [buildvms, '[-options]'], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1366 'c1visualizer' : [c1visualizer, ''], |
23307
c75c5e73fd65
Deploy all JVM_{product,fastdebug}_{jvmci,server} variants.
Roland Schatz <roland.schatz@oracle.com>
parents:
23301
diff
changeset
|
1367 'deploy-binary' : [deploy_binary, ''], |
22167
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1368 'export': [export, '[-options] [zipfile]'], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1369 'hsdis': [hsdis, '[att]'], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1370 'hcfdis': [hcfdis, ''], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1371 'igv' : [igv, ''], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1372 'jdkhome': [print_jdkhome, ''], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1373 'shortunittest' : [shortunittest, '[unittest options] [--] [VM options] [filters...]', mx_unittest.unittestHelpSuffix], |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1374 'vm': [run_vm, '[-options] class [args...]'], |
22167
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1375 'deoptalot' : [deoptalot, '[n]'], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1376 'longtests' : [longtests, ''], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1377 'jol' : [jol, ''], |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1378 }) |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
1379 |
22167
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1380 mx.add_argument('--vmcwd', dest='vm_cwd', help='current directory will be changed to <path> before the VM is executed', default=None, metavar='<path>') |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1381 mx.add_argument('--installed-jdks', help='the base directory in which the JDKs cloned from $JAVA_HOME exist. ' + |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1382 'The VM selected by --vm and --vmbuild options is under this directory (i.e., ' + |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1383 join('<path>', '<jdk-version>', '<vmbuild>', 'jre', 'lib', '<vm>', mx.add_lib_prefix(mx.add_lib_suffix('jvm'))) + ')', default=None, metavar='<path>') |
4156
843c8d6720da
Added 'export' command for creating a GraalVM zip file distribution without the Mercurial data or VM sources.
Doug Simon <doug.simon@oracle.com>
parents:
4155
diff
changeset
|
1384 |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1385 mx.add_argument('-M', '--jvmci-mode', action='store', dest='jvmci_mode', choices=_jvmciModes.keys(), help='the JVMCI mode to use (default: ' + _jvmciMode.jvmciMode + ')') |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1386 mx.add_argument('--vm', action='store', dest='vm', choices=_vmChoices.keys() + _vmAliases.keys(), help='the VM type to build/run') |
22167
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1387 mx.add_argument('--vmbuild', action='store', dest='vmbuild', choices=_vmbuildChoices, help='the VM build to build/run (default: ' + _vmbuildChoices[0] + ')') |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1388 mx.add_argument('--ecl', action='store_true', dest='make_eclipse_launch', help='create launch configuration for running VM execution(s) in Eclipse') |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1389 mx.add_argument('--vmprefix', action='store', dest='vm_prefix', help='prefix for running the VM (e.g. "/usr/bin/gdb --args")', metavar='<prefix>') |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1390 mx.add_argument('--gdb', action='store_const', const='/usr/bin/gdb --args', dest='vm_prefix', help='alias for --vmprefix "/usr/bin/gdb --args"') |
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1391 mx.add_argument('--lldb', action='store_const', const='lldb --', dest='vm_prefix', help='alias for --vmprefix "lldb --"') |
4144
34527a24bcf8
Adopted mxtool changes.
Doug Simon <doug.simon@oracle.com>
parents:
3736
diff
changeset
|
1392 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1393 _jvmci_bootstrap_jdk = None |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1394 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1395 def get_jvmci_bootstrap_jdk(): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1396 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1397 Gets the JDK from which a JVMCI JDK is created. |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1398 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1399 global _jvmci_bootstrap_jdk |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1400 if not _jvmci_bootstrap_jdk: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1401 def _versionCheck(version): |
23978
f553add9342f
Update and fix JDK version checks
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
23711
diff
changeset
|
1402 return version >= _minVersion and ((not _untilVersion) or version < _untilVersion) |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1403 versionDesc = ">=" + str(_minVersion) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1404 if _untilVersion: |
23978
f553add9342f
Update and fix JDK version checks
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
23711
diff
changeset
|
1405 versionDesc += " and <" + str(_untilVersion) |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1406 _jvmci_bootstrap_jdk = mx.get_jdk(_versionCheck, versionDescription=versionDesc, tag='default') |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1407 return _jvmci_bootstrap_jdk |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1408 |
22561
ba4ef98ae535
Add mx_jvmci API to prepend ClasspathDependencies to the bootclasspath of the jvmci JDK
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22534
diff
changeset
|
1409 _jvmci_bootclasspath_prepends = [] |
ba4ef98ae535
Add mx_jvmci API to prepend ClasspathDependencies to the bootclasspath of the jvmci JDK
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22534
diff
changeset
|
1410 |
ba4ef98ae535
Add mx_jvmci API to prepend ClasspathDependencies to the bootclasspath of the jvmci JDK
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22534
diff
changeset
|
1411 def add_bootclasspath_prepend(dep): |
ba4ef98ae535
Add mx_jvmci API to prepend ClasspathDependencies to the bootclasspath of the jvmci JDK
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22534
diff
changeset
|
1412 assert isinstance(dep, mx.ClasspathDependency) |
ba4ef98ae535
Add mx_jvmci API to prepend ClasspathDependencies to the bootclasspath of the jvmci JDK
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22534
diff
changeset
|
1413 _jvmci_bootclasspath_prepends.append(dep) |
ba4ef98ae535
Add mx_jvmci API to prepend ClasspathDependencies to the bootclasspath of the jvmci JDK
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22534
diff
changeset
|
1414 |
22771
994b87797b9d
rename classes to denote jvmci version
Doug Simon <doug.simon@oracle.com>
parents:
22766
diff
changeset
|
1415 class JVMCI8JDKConfig(mx.JDKConfig): |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1416 def __init__(self, vmbuild): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1417 # Ignore the deployable distributions here - they are only deployed during building. |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1418 # This significantly reduces the latency of the "mx java" command. |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1419 self.vmbuild = vmbuild |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1420 jdkDir = get_jvmci_jdk_dir(build=self.vmbuild, create=True, deployDists=False) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1421 mx.JDKConfig.__init__(self, jdkDir, tag=_JVMCI_JDK_TAG) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1422 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1423 def parseVmArgs(self, args, addDefaultArgs=True): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1424 args = mx.expand_project_in_args(args, insitu=False) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1425 jacocoArgs = mx_gate.get_jacoco_agent_args() |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1426 if jacocoArgs: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1427 args = jacocoArgs + args |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1428 |
22561
ba4ef98ae535
Add mx_jvmci API to prepend ClasspathDependencies to the bootclasspath of the jvmci JDK
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22534
diff
changeset
|
1429 args = ['-Xbootclasspath/p:' + dep.classpath_repr() for dep in _jvmci_bootclasspath_prepends] + args |
ba4ef98ae535
Add mx_jvmci API to prepend ClasspathDependencies to the bootclasspath of the jvmci JDK
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22534
diff
changeset
|
1430 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1431 if '-version' in args: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1432 ignoredArgs = args[args.index('-version') + 1:] |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1433 if len(ignoredArgs) > 0: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1434 mx.log("Warning: The following options will be ignored by the vm because they come after the '-version' argument: " + ' '.join(ignoredArgs)) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1435 return self.processArgs(args, addDefaultArgs=addDefaultArgs) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1436 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1437 # Overrides JDKConfig |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1438 def run_java(self, args, vm=None, nonZeroIsFatal=True, out=None, err=None, cwd=None, timeout=None, env=None, addDefaultArgs=True): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1439 if vm is None: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1440 vm = get_vm() |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1441 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1442 if not isVMSupported(vm): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1443 mx.abort('The ' + vm + ' is not supported on this platform') |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1444 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1445 if cwd is None: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1446 cwd = _vm_cwd |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1447 elif _vm_cwd is not None and _vm_cwd != cwd: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1448 mx.abort("conflicting working directories: do not set --vmcwd for this command") |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1449 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1450 args = self.parseVmArgs(args, addDefaultArgs=addDefaultArgs) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1451 if _make_eclipse_launch: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1452 mx.make_eclipse_launch(_suite, args, _suite.name + '-' + build, name=None, deps=mx.dependencies()) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1453 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1454 pfx = _vm_prefix.split() if _vm_prefix is not None else [] |
24135
a8e0d0625b32
removed defunct support for non-INCLUDE_JVMCI builds
Doug Simon <doug.simon@oracle.com>
parents:
24107
diff
changeset
|
1455 args = get_jvmci_mode_args() + args |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1456 cmd = pfx + [self.java] + ['-' + vm] + args |
22732
b2ffe9891356
In 'def run_java()' add missing forwarding of timeout argument
Paul Woegerer <paul.woegerer@oracle.com>
parents:
22729
diff
changeset
|
1457 return mx.run(cmd, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd, timeout=timeout) |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1458 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1459 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1460 The dict of JVMCI JDKs indexed by vmbuild names. |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1461 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1462 _jvmci_jdks = {} |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1463 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1464 def get_jvmci_jdk(vmbuild=None): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1465 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1466 Gets the JVMCI JDK corresponding to 'vmbuild'. |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1467 """ |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1468 if not vmbuild: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1469 vmbuild = _vmbuild |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1470 jdk = _jvmci_jdks.get(vmbuild) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1471 if jdk is None: |
22771
994b87797b9d
rename classes to denote jvmci version
Doug Simon <doug.simon@oracle.com>
parents:
22766
diff
changeset
|
1472 jdk = JVMCI8JDKConfig(vmbuild) |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1473 _jvmci_jdks[vmbuild] = jdk |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1474 return jdk |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1475 |
23408
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
1476 mx_unittest.set_vm_launcher('JVMCI VM launcher', _unittest_vm_launcher, get_jvmci_jdk) |
f84a5ac3be22
make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents:
23405
diff
changeset
|
1477 |
22771
994b87797b9d
rename classes to denote jvmci version
Doug Simon <doug.simon@oracle.com>
parents:
22766
diff
changeset
|
1478 class JVMCI8JDKFactory(mx.JDKFactory): |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1479 def getJDKConfig(self): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1480 jdk = get_jvmci_jdk(_vmbuild) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1481 check_VM_exists(get_vm(), jdk.home) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1482 return jdk |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1483 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1484 def description(self): |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1485 return "JVMCI JDK" |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1486 |
22771
994b87797b9d
rename classes to denote jvmci version
Doug Simon <doug.simon@oracle.com>
parents:
22766
diff
changeset
|
1487 mx.addJDKFactory(_JVMCI_JDK_TAG, mx.JavaCompliance('8'), JVMCI8JDKFactory()) |
22766
7d02b4097309
register JVMCIJDKFactory at module load time
Doug Simon <doug.simon@oracle.com>
parents:
22761
diff
changeset
|
1488 |
22167
22b37f37be0a
adapted to removal of mx_init() mechanism from mx2
Doug Simon <doug.simon@oracle.com>
parents:
22166
diff
changeset
|
1489 def mx_post_parse_cmd_line(opts): |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1490 mx.set_java_command_default_jdk_tag(_JVMCI_JDK_TAG) |
5729
dab877fe7c31
prevented error during mx site from corrupting an existing site
Doug Simon <doug.simon@oracle.com>
parents:
5708
diff
changeset
|
1491 |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1492 # Execute for the side-effect of checking that the |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1493 # boot strap JDK has a compatible version |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1494 get_jvmci_bootstrap_jdk() |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1495 |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1496 jdkTag = mx.get_jdk_option().tag |
22019
07cfd3d7072b
removed _vmSourcesAvailable
Doug Simon <doug.simon@oracle.com>
parents:
22018
diff
changeset
|
1497 if hasattr(opts, 'vm') and opts.vm is not None: |
07cfd3d7072b
removed _vmSourcesAvailable
Doug Simon <doug.simon@oracle.com>
parents:
22018
diff
changeset
|
1498 global _vm |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1499 _vm = dealiased_vm(opts.vm) |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1500 if jdkTag and jdkTag != _JVMCI_JDK_TAG: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1501 mx.warn('Ignoring "--vm" option as "--jdk" tag is not "' + _JVMCI_JDK_TAG + '"') |
23404
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1502 if opts.jvmci_mode is not None: |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1503 global _jvmciMode |
3ef45d0a6d77
Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents:
23379
diff
changeset
|
1504 _jvmciMode = JVMCIMode(opts.jvmci_mode) |
22019
07cfd3d7072b
removed _vmSourcesAvailable
Doug Simon <doug.simon@oracle.com>
parents:
22018
diff
changeset
|
1505 if hasattr(opts, 'vmbuild') and opts.vmbuild is not None: |
07cfd3d7072b
removed _vmSourcesAvailable
Doug Simon <doug.simon@oracle.com>
parents:
22018
diff
changeset
|
1506 global _vmbuild |
07cfd3d7072b
removed _vmSourcesAvailable
Doug Simon <doug.simon@oracle.com>
parents:
22018
diff
changeset
|
1507 _vmbuild = opts.vmbuild |
22493
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1508 if jdkTag and jdkTag != _JVMCI_JDK_TAG: |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1509 mx.warn('Ignoring "--vmbuild" option as "--jdk" tag is not "' + _JVMCI_JDK_TAG + '"') |
63b12d69147d
added JVMCI JDK factory; clarified distinction between VM aliases and real VMs; removed left-over "graal" references; rename 'vm' function to 'run_vm'
Doug Simon <doug.simon@oracle.com>
parents:
22492
diff
changeset
|
1510 |
22019
07cfd3d7072b
removed _vmSourcesAvailable
Doug Simon <doug.simon@oracle.com>
parents:
22018
diff
changeset
|
1511 global _make_eclipse_launch |
07cfd3d7072b
removed _vmSourcesAvailable
Doug Simon <doug.simon@oracle.com>
parents:
22018
diff
changeset
|
1512 _make_eclipse_launch = getattr(opts, 'make_eclipse_launch', False) |
11401
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
1513 global _vm_cwd |
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
1514 _vm_cwd = opts.vm_cwd |
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
1515 global _installed_jdks |
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
1516 _installed_jdks = opts.installed_jdks |
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
1517 global _vm_prefix |
2d228d304247
minor improvements/cleanups to mx (CR-1313)
Doug Simon <doug.simon@oracle.com>
parents:
11395
diff
changeset
|
1518 _vm_prefix = opts.vm_prefix |
8134
6e3ebc6fd5a4
graal.jar is installed in all JDKs every time it is updated (GRAAL-136)
Doug Simon <doug.simon@oracle.com>
parents:
8132
diff
changeset
|
1519 |
22282
9ab88ee1f79f
spelling fix: instanciate -> instantiate
Doug Simon <doug.simon@oracle.com>
parents:
22281
diff
changeset
|
1520 mx.instantiateDistribution('JVM_<vmbuild>_<vm>', dict(vmbuild=_vmbuild, vm=get_vm())) |
22280
ac5551e3ff9c
Make the JVM a distribution
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
22279
diff
changeset
|
1521 |
22139
ed35cb998428
Initial split off from monolithic basic-graal repo
Doug Simon <doug.simon@oracle.com>
parents:
22108
diff
changeset
|
1522 for jdkDist in jdkDeployedDists: |
22761
f2206f5bb62e
removed @ServiceProvider mechanism (GRAAL-1380)
Doug Simon <doug.simon@oracle.com>
parents:
22758
diff
changeset
|
1523 jdkDist.post_parse_cmd_line() |