Mercurial > hg > graal-compiler
changeset 5596:e4b1bc5e29e0
hsdis library is downloaded into newly created Graal JDK
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 14 Jun 2012 12:28:20 +0200 |
parents | ea9ac81f5645 |
children | 7034c6a6c999 |
files | mx/commands.py |
diffstat | 1 files changed, 14 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mx/commands.py Thu Jun 14 12:06:44 2012 +0200 +++ b/mx/commands.py Thu Jun 14 12:28:20 2012 +0200 @@ -338,6 +338,11 @@ for line in lines: f.write(line) + # Install a copy of the disassembler library + try: + hsdis([], copyToDir=_vmLibDirInJdk(jdk)) + except SystemExit: + pass else: if not exists(jdk): mx.abort('The ' + build + ' VM has not been created - run \'mx clean; mx build ' + build + '\'') @@ -553,11 +558,12 @@ vm = _vm build = vmbuild if vmbuild is not None else _vmbuild if _vmSourcesAvailable else 'product' + jdk = _jdk(build) mx.expand_project_in_args(args) if _make_eclipse_launch: mx.make_eclipse_launch(args, 'graal-' + build, name=None, deps=mx.project('com.oracle.graal.hotspot').all_deps([], True)) if len([a for a in args if 'PrintAssembly' in a]) != 0: - hsdis([]) + hsdis([], copyToDir=_vmLibDirInJdk(jdk)) if mx.java().debug_port is not None: args = ['-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=' + str(mx.java().debug_port)] + args if _jacoco == 'on' or _jacoco == 'append': @@ -573,7 +579,7 @@ 'excludes' : ':'.join(excludes) } args = ['-javaagent:' + jacocoagent.get_path(True) + '=' + ','.join([k + '=' + v for k, v in agentOptions.items()])] + args - exe = join(_jdk(build), 'bin', mx.exe_suffix('java')) + exe = join(jdk, 'bin', mx.exe_suffix('java')) return mx.run([exe, '-' + vm] + args, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd, timeout=timeout) def _find_classes_with_annotations(classes, p, pkgRoot, annotations, includeInnerClasses=False): @@ -967,19 +973,20 @@ vm = _vm; sanitycheck.getSPECjvm2008(benchArgs, skipValid, wt, it).bench(vm, opts=vmArgs) -def hsdis(args): - """install the hsdis library +def hsdis(args, copyToDir=None): + """downloads the hsdis library This is needed to support HotSpot's assembly dumping features. - By default it installs the Intel syntax version, use the 'att' argument to install AT&T syntax.""" + By default it downloads the Intel syntax version, use the 'att' argument to install AT&T syntax.""" flavor = 'intel' if 'att' in args: flavor = 'att' - build = _vmbuild if _vmSourcesAvailable else 'product' lib = mx.lib_suffix('hsdis-amd64') - path = join(_vmLibDirInJdk(_jdk(build)), lib) + path = join(_graal_home, 'lib', lib) if not exists(path): mx.download(path, ['http://lafo.ssw.uni-linz.ac.at/hsdis/' + flavor + "/" + lib]) + if copyToDir is not None and exists(copyToDir): + shutil.copy(path, copyToDir) def hcfdis(args): """disassembles HexCodeFiles embedded in text files