Mercurial > hg > graal-jvmci-8
diff mx.jvmci/mx_jvmci.py @ 22140:60d9e50d5481
only perform check for obsolete JVMCI files during full build
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 06 Jul 2015 22:09:10 +0200 |
parents | ed35cb998428 |
children | f85b80b29176 |
line wrap: on
line diff
--- a/mx.jvmci/mx_jvmci.py Mon Jul 06 14:10:14 2015 +0200 +++ b/mx.jvmci/mx_jvmci.py Mon Jul 06 22:09:10 2015 +0200 @@ -502,7 +502,7 @@ shutil.move(tmp, dstLib) os.chmod(dstLib, permissions) -def _extractJVMCIFiles(jdkJars, jvmciJars, servicesDir, optionsDir): +def _extractJVMCIFiles(jdkJars, jvmciJars, servicesDir, optionsDir, obsoleteCheck): oldServices = os.listdir(servicesDir) if exists(servicesDir) else os.makedirs(servicesDir) oldOptions = os.listdir(optionsDir) if exists(optionsDir) else os.makedirs(optionsDir) @@ -529,36 +529,40 @@ optionsFiles.append(filename) with zf.open(member) as optionsFile, \ file(targetpath, "wb") as target: - shutil.copyfileobj(optionsFile, target) + if not obsoleteCheck: + shutil.copyfileobj(optionsFile, target) if oldOptions and filename in oldOptions: oldOptions.remove(filename) for service, providers in jvmciServices.iteritems(): - fd, tmp = tempfile.mkstemp(prefix=service) - f = os.fdopen(fd, 'w+') - for provider in providers: - f.write(provider + os.linesep) - target = join(servicesDir, service) - f.close() - shutil.move(tmp, target) + if not obsoleteCheck: + fd, tmp = tempfile.mkstemp(prefix=service) + f = os.fdopen(fd, 'w+') + for provider in providers: + f.write(provider + os.linesep) + target = join(servicesDir, service) + f.close() + shutil.move(tmp, target) + if mx.get_os() != 'windows': + os.chmod(target, JDK_UNIX_PERMISSIONS_FILE) if oldServices and service in oldServices: oldServices.remove(service) - if mx.get_os() != 'windows': - os.chmod(target, JDK_UNIX_PERMISSIONS_FILE) - if mx.is_interactive(): + if obsoleteCheck: for d, files in [(servicesDir, oldServices), (optionsDir, oldOptions)]: - if files and mx.ask_yes_no('These files in ' + d + ' look obsolete:\n ' + '\n '.join(files) + '\nDelete them', 'n'): - for f in files: - path = join(d, f) - os.remove(path) - mx.log('Deleted ' + path) + if files: + print 'These files in ' + d + ' look obsolete:\n ' + '\n '.join(files) + if mx.is_interactive() and mx.ask_yes_no('Delete them', 'n'): + for f in files: + path = join(d, f) + os.remove(path) + mx.log('Deleted ' + path) -def _updateJVMCIFiles(jdkDir): +def _updateJVMCIFiles(jdkDir, obsoleteCheck=False): jreJVMCIDir = join(jdkDir, 'jre', 'lib', 'jvmci') jvmciJars = [join(jreJVMCIDir, e) for e in os.listdir(jreJVMCIDir) if e.endswith('.jar')] jreJVMCIServicesDir = join(jreJVMCIDir, 'services') jreJVMCIOptionsDir = join(jreJVMCIDir, 'options') - _extractJVMCIFiles(_getJdkDeployedJars(jdkDir), jvmciJars, jreJVMCIServicesDir, jreJVMCIOptionsDir) + _extractJVMCIFiles(_getJdkDeployedJars(jdkDir), jvmciJars, jreJVMCIServicesDir, jreJVMCIOptionsDir, obsoleteCheck) def _installDistInJdks(deployableDist): """ @@ -588,6 +592,13 @@ if deployableDist.postJdkInstall: deployableDist.postJdkInstall(jdkDir, targetDir) +def _check_for_obsolete_jvmci_files(): + jdks = _jdksDir() + if exists(jdks): + for e in os.listdir(jdks): + jdkDir = join(jdks, e) + _updateJVMCIFiles(jdkDir, obsoleteCheck=True) + def _getJdkDeployedJars(jdkDir): """ Gets jar paths for all deployed distributions in the context of @@ -730,6 +741,10 @@ if not opts2.native: return + if opts2.java and not opts2.projects and not opts2.only: + # Only check deployed JVMCI files on a full build + _check_for_obsolete_jvmci_files() + builds = [_vmbuild] if os.environ.get('BUILDING_FROM_IDE', None) == 'true':