-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
169db87
commit 3cf07ef
Showing
6 changed files
with
527 additions
and
96 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,257 @@ | ||
diff --git a/mx.py b/mx.py | ||
index d119b62..471fe98 100644 | ||
--- a/mx.py | ||
+++ b/mx.py | ||
@@ -4961,30 +4961,6 @@ class PackedResourceLibrary(ResourceLibrary): | ||
|
||
def get_path(self, resolve): | ||
extract_path = _make_absolute(self.extract_path, self.suite.dir) | ||
- download_path = super(PackedResourceLibrary, self).get_path(resolve) | ||
- if resolve and self._check_extract_needed(extract_path, download_path): | ||
- extract_path_tmp = tempfile.mkdtemp(suffix=basename(extract_path), dir=dirname(extract_path)) | ||
- try: | ||
- # extract archive | ||
- Extractor.create(download_path).extract(extract_path_tmp) | ||
- # ensure modification time is up to date | ||
- os.utime(extract_path_tmp, None) | ||
- logv("Moving temporary directory {} to {}".format(extract_path_tmp, extract_path)) | ||
- try: | ||
- # attempt atomic overwrite | ||
- os.rename(extract_path_tmp, extract_path) | ||
- except OSError: | ||
- # clean destination & re-try for cases where atomic overwrite doesn't work | ||
- rmtree(extract_path, ignore_errors=True) | ||
- os.rename(extract_path_tmp, extract_path) | ||
- except OSError as ose: | ||
- # Rename failed. Race with other process? | ||
- if self._check_extract_needed(extract_path, download_path): | ||
- # ok something really went wrong | ||
- abort("Extracting {} failed!".format(download_path), context=ose) | ||
- finally: | ||
- rmtree(extract_path_tmp, ignore_errors=True) | ||
- | ||
return extract_path | ||
|
||
def _check_download_needed(self): | ||
@@ -5885,7 +5861,7 @@ class HgConfig(VC): | ||
|
||
def update_to_branch(self, vcdir, branch, abortOnError=True): | ||
cmd = ['update', branch] | ||
- self.hg_command(vcdir, cmd, abortOnError=abortOnError) | ||
+ self.run(['hg', vcdir] + cmd) | ||
|
||
def add(self, vcdir, path, abortOnError=True): | ||
return self.run(['hg', '-q', '-R', vcdir, 'add', path]) == 0 | ||
@@ -5922,7 +5898,7 @@ class HgConfig(VC): | ||
return None | ||
|
||
def parent_info(self, vcdir, abortOnError=True): | ||
- out = self.hg_command(vcdir, ["log", "-r", ".", "--template", "{author}|||{date|hgdate}"], abortOnError=abortOnError) | ||
+ out = _check_output_str(["hg", '-R', vcdir, "log", "-r", ".", "--template", "{author}|||{date|hgdate}"]) | ||
author, date = out.split("|||") | ||
ts, _ = date.split(" ") | ||
return self._sanitize_parent_info({ | ||
@@ -8287,46 +8263,8 @@ class SuiteImport: | ||
version = import_dict.get("version") | ||
suite_dir = None | ||
version_from = import_dict.get("versionFrom") | ||
- if version_from and version: | ||
- abort("In import for '{}': 'version' and 'versionFrom' can not be both set".format(name), context=context) | ||
- if version is None and version_from is None: | ||
- if not (in_subdir and (importer.vc_dir != importer.dir or isinstance(importer, BinarySuite))): | ||
- abort("In import for '{}': No version given and not a 'subdir' suite of the same repository".format(name), context=context) | ||
- if importer.isSourceSuite(): | ||
- suite_dir = join(importer.vc_dir, name) | ||
- version = importer.version() | ||
- if urls is None: | ||
- if not in_subdir: | ||
- if import_dict.get("subdir") is None and importer.vc_dir != importer.dir: | ||
- warn("In import for '{}': No urls given but 'subdir' is not set, assuming 'subdir=True'".format(name), context) | ||
- in_subdir = True | ||
- else: | ||
- abort("In import for '{}': No urls given and not a 'subdir' suite".format(name), context=context) | ||
- return SuiteImport(name, version, None, None, dynamicImport=dynamicImport, in_subdir=in_subdir, version_from=version_from, suite_dir=suite_dir) | ||
- # urls a list of alternatives defined as dicts | ||
- if not isinstance(urls, list): | ||
- abort('suite import urls must be a list', context=context) | ||
- urlinfos = [] | ||
- mainKind = None | ||
- for urlinfo in urls: | ||
- if isinstance(urlinfo, dict) and urlinfo.get('url') and urlinfo.get('kind'): | ||
- kind = urlinfo.get('kind') | ||
- if not VC.is_valid_kind(kind): | ||
- abort('suite import kind ' + kind + ' illegal', context=context) | ||
- else: | ||
- abort('suite import url must be a dict with {"url", kind", attributes', context=context) | ||
- vc = vc_system(kind) | ||
- if kind != 'binary': | ||
- assert not mainKind or mainKind == kind, "Only expecting one non-binary kind" | ||
- mainKind = kind | ||
- url = mx_urlrewrites.rewriteurl(urlinfo.get('url')) | ||
- urlinfos.append(SuiteImportURLInfo(url, kind, vc)) | ||
- vc_kind = None | ||
- if mainKind: | ||
- vc_kind = mainKind | ||
- elif urlinfos: | ||
- vc_kind = 'binary' | ||
- return SuiteImport(name, version, urlinfos, vc_kind, dynamicImport=dynamicImport, in_subdir=in_subdir, version_from=version_from, suite_dir=suite_dir) | ||
+ suite_dir = join(get_env('MX_GIT_CACHE_DIR'), name) | ||
+ return SuiteImport(name, version, [], None, True, in_subdir=in_subdir, version_from=version_from, suite_dir=suite_dir) | ||
|
||
@staticmethod | ||
def get_source_urls(source, kind=None): | ||
@@ -8367,8 +8305,6 @@ class Suite(object): | ||
:type dists: list[Distribution] | ||
""" | ||
def __init__(self, mxDir, primary, internal, importing_suite, load, vc, vc_dir, dynamicallyImported=False): | ||
- if primary is True and vc_dir is None: | ||
- abort("The primary suite must be in a vcs repository") | ||
self.imported_by = [] if primary else [importing_suite] | ||
self.mxDir = mxDir | ||
self.dir = dirname(mxDir) | ||
@@ -8396,7 +8332,7 @@ class Suite(object): | ||
self._outputRoot = None | ||
self._preloaded_suite_dict = None | ||
self.vc = vc | ||
- self.vc_dir = vc_dir | ||
+ self.vc_dir = get_env('MX_GIT_CACHE_DIR') | ||
self._preload_suite_dict() | ||
self._init_imports() | ||
if load: | ||
@@ -9295,7 +9231,9 @@ def get_dynamic_imports(): | ||
class SourceSuite(Suite): | ||
"""A source suite""" | ||
def __init__(self, mxDir, primary=False, load=True, internal=False, importing_suite=None, dynamicallyImported=False): | ||
- vc, vc_dir = VC.get_vc_root(dirname(mxDir), abortOnError=False) | ||
+ vc, vc_dir_test = VC.get_vc_root(dirname(mxDir), abortOnError=False) | ||
+ vc_dir = get_env('MX_GIT_CACHE_DIR') | ||
+ warn("LOOKING FOR: " + mxDir) | ||
Suite.__init__(self, mxDir, primary, internal, importing_suite, load, vc, vc_dir, dynamicallyImported=dynamicallyImported) | ||
logvv("SourceSuite.__init__({}), got vc={}, vc_dir={}".format(mxDir, self.vc, self.vc_dir)) | ||
self.projects = [] | ||
@@ -9344,17 +9282,7 @@ class SourceSuite(Suite): | ||
""" | ||
Gets the release tag from VC or create a time based once if VC is unavailable | ||
""" | ||
- if snapshotSuffix not in self._releaseVersion: | ||
- _version = self._get_early_suite_dict_property('version') | ||
- if _version and self.getMxCompatibility().addVersionSuffixToExplicitVersion(): | ||
- if not self.is_release(): | ||
- _version = _version + '-' + snapshotSuffix | ||
- if not _version: | ||
- _version = self.vc.release_version_from_tags(self.vc_dir, self.name, snapshotSuffix=snapshotSuffix) | ||
- if not _version: | ||
- _version = 'unknown-{0}-{1}'.format(platform.node(), time.strftime('%Y-%m-%d_%H-%M-%S_%Z')) | ||
- self._releaseVersion[snapshotSuffix] = _version | ||
- return self._releaseVersion[snapshotSuffix] | ||
+ return get_env('version') | ||
|
||
def scm_metadata(self, abortOnError=False): | ||
scm = self.scm | ||
@@ -12526,55 +12454,8 @@ def _attempt_download(url, path, jarEntryName=None): | ||
return False | ||
|
||
def download(path, urls, verbose=False, abortOnError=True, verifyOnly=False): | ||
- """ | ||
- Attempts to downloads content for each URL in a list, stopping after the first successful download. | ||
- If the content cannot be retrieved from any URL, the program is aborted, unless abortOnError=False. | ||
- The downloaded content is written to the file indicated by `path`. | ||
- """ | ||
- if not verifyOnly: | ||
- ensure_dirname_exists(path) | ||
- assert not path.endswith(os.sep) | ||
- | ||
- # https://docs.oracle.com/javase/7/docs/api/java/net/JarURLConnection.html | ||
- jarURLPattern = re.compile('jar:(.*)!/(.*)') | ||
- verify_errors = {} | ||
- for url in urls: | ||
- if not verifyOnly or verbose: | ||
- log('Downloading ' + url + ' to ' + path) | ||
- m = jarURLPattern.match(url) | ||
- jarEntryName = None | ||
- if m: | ||
- url = m.group(1) | ||
- jarEntryName = m.group(2) | ||
- | ||
- if verifyOnly: | ||
- try: | ||
- conn = _urlopen(url, timeout=10) | ||
- conn.close() | ||
- return True | ||
- except (IOError, socket.timeout) as e: | ||
- _suggest_tlsv1_error(e) | ||
- verify_errors[url] = e | ||
- continue | ||
- | ||
- for i in range(4): | ||
- if i != 0: | ||
- time.sleep(1) | ||
- warn('Retry {} to download from {}'.format(i, url)) | ||
- res = _attempt_download(url, path, jarEntryName) | ||
- if res is True: | ||
- return True | ||
- if res is False: | ||
- break | ||
- | ||
- if abortOnError: | ||
- msg = 'Could not download to ' + path + ' from any of the following URLs: ' + ', '.join(urls) | ||
- if verifyOnly: | ||
- for url, e in verify_errors.items(): | ||
- msg += '\n ' + url + ': ' + str(e) | ||
- abort(msg) | ||
- else: | ||
- return False | ||
+ print("FAKE download(path={} urls={} verbose={} abortOnError={} verifyOnly={})".format(path, urls, verbose, abortOnError, verifyOnly)) | ||
+ return True | ||
|
||
def update_file(path, content, showDiff=False): | ||
""" | ||
@@ -13378,6 +13259,7 @@ class Archiver(SafeFileCreation): | ||
|
||
def _add_zip(self, filename, archive_name, provenance): | ||
self._add_provenance(archive_name, provenance) | ||
+ os.utime(filename, (315532800, 315532800)) | ||
self.zf.write(filename, archive_name) | ||
|
||
def _add_str_zip(self, data, archive_name, provenance): | ||
@@ -18526,12 +18408,35 @@ def _find_suite_import(importing_suite, suite_import, fatalIfMissing=True, load= | ||
Attempts to locate an existing suite in the local context | ||
Returns the path to the mx.name dir if found else None | ||
""" | ||
- if mode == 'binary': | ||
- # binary suites are always stored relative to the importing suite in mx-private directory | ||
- return importing_suite._find_binary_suite_dir(suite_import.name) | ||
+ warn("FAKE CLONE: " + str(suite_import)) | ||
+ if (suite_import.name == "truffle"): | ||
+ return join(get_env('TMP'), "source", "truffle", "mx.truffle") | ||
+ if (suite_import.name == "graal-nodejs"): | ||
+ return join(get_env('MX_GIT_CACHE_DIR'), "graaljs", "graal-nodejs", "mx.graal-nodejs") | ||
+ if (suite_import.name == "truffleruby"): | ||
+ return join(get_env('MX_GIT_CACHE_DIR'), "truffleruby", "mx.truffleruby") | ||
+ if (suite_import.name == "graalpython"): | ||
+ return join(get_env('MX_GIT_CACHE_DIR'), "graalpython", "mx.graalpython") | ||
+ if (suite_import.name == "vm"): | ||
+ return join(get_env('TMP'), "source", "vm", "mx.vm") | ||
+ if (suite_import.name == "fastr"): | ||
+ return join(get_env('MX_GIT_CACHE_DIR'), "fastr", "mx.fastr") | ||
+ if (suite_import.name == "sdk"): | ||
+ return join(get_env('TMP'), "source", "sdk", "mx.sdk") | ||
+ if (suite_import.name == "graal-js"): | ||
+ return join(get_env('MX_GIT_CACHE_DIR'), "graaljs", "graal-js", "mx.graal-js") | ||
+ if (suite_import.name == "regex"): | ||
+ return join(get_env('TMP'), "source", "regex", "mx.regex") | ||
+ if (suite_import.name == "substratevm"): | ||
+ return join(get_env('TMP'), "source", "substratevm", "mx.substratevm") | ||
+ if (suite_import.name == "tools"): | ||
+ return join(get_env('TMP'), "source", "tools", "mx.tools") | ||
+ if (suite_import.name == "sulong"): | ||
+ return join(get_env('TMP'), "source", "sulong", "mx.sulong") | ||
+ if (suite_import.name == "compiler"): | ||
+ return join(get_env('TMP'), "source", "compiler", "mx.compiler") | ||
else: | ||
- # use the SuiteModel to locate a local source copy of the suite | ||
- return _suitemodel.find_suite_dir(suite_import) | ||
+ return join(get_env('MX_GIT_CACHE_DIR'), suite_import.name) | ||
|
||
def _get_import_dir(url, mode): | ||
"""Return directory where the suite will be cloned to""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
diff --git a/sulong/projects/com.oracle.truffle.llvm.libraries.bitcode/src/setjmp.c b/sulong/projects/com.oracle.truffle.llvm.libraries.bitcode/src/setjmp.c | ||
index 16b869354d8..3691739d13b 100644 | ||
--- a/sulong/projects/com.oracle.truffle.llvm.libraries.bitcode/src/setjmp.c | ||
+++ b/sulong/projects/com.oracle.truffle.llvm.libraries.bitcode/src/setjmp.c | ||
@@ -41,11 +41,3 @@ int sigsetjmp(sigjmp_buf env, int savesigs) { | ||
WARN_UNSUPPORTED(sigsetjmp); | ||
return 0; | ||
} | ||
- | ||
-void longjmp(jmp_buf env, int val) { | ||
- ERR_UNSUPPORTED(longjmp); | ||
-} | ||
- | ||
-void siglongjmp(sigjmp_buf env, int val) { | ||
- ERR_UNSUPPORTED(siglongjmp); | ||
-} |
12 changes: 12 additions & 0 deletions
12
pkgs/development/compilers/graalvm/003_mx_truffle.py.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
diff --git a/truffle/mx.truffle/mx_truffle.py b/truffle/mx.truffle/mx_truffle.py | ||
index 8889c5ad810..add211a45c5 100644 | ||
--- a/truffle/mx.truffle/mx_truffle.py | ||
+++ b/truffle/mx.truffle/mx_truffle.py | ||
@@ -695,6 +695,7 @@ class LibffiBuildTask(mx.AbstractNativeBuildTask): | ||
os.path.relpath(self.subject.delegate.dir, self.subject.suite.vc_dir)] | ||
for patch in self.subject.patches: | ||
mx.run(git_apply + [patch], cwd=self.subject.suite.vc_dir) | ||
+ mx.run(['cp', os.path.join(os.getenv('TMP'), 'truffle.make'), os.path.join(self.subject.delegate.dir, 'Makefile')]) | ||
|
||
self.delegate.logBuild() | ||
self.delegate.build() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
diff --git a/mx.jvmci/mx_jvmci.py b/mx.jvmci/mx_jvmci.py | ||
index 491fc19ab9..b4ddc03abb 100644 | ||
--- a/mx.jvmci/mx_jvmci.py | ||
+++ b/mx.jvmci/mx_jvmci.py | ||
@@ -192,6 +192,7 @@ class HotSpotVMJDKDeployedDist(JDKDeployedDist): | ||
if m.name in _hs_deploy_map: | ||
targetDir = join(jdkDir, _hs_deploy_map[m.name]) | ||
mx.logv('Deploying {} from {} to {}'.format(m.name, dist.name, targetDir)) | ||
+ subprocess.call(["chmod", "-R", "+rw", targetDir]) | ||
tar.extract(m, targetDir) | ||
|
||
""" |
Oops, something went wrong.