From 3ebf25ee802877cd3940e08ed445a9999603c383 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 8 Sep 2014 16:38:05 -0700 Subject: [PATCH] Fix snapshot.py for win64 --- mk/dist.mk | 2 +- src/etc/copy-runtime-deps.py | 6 +++--- src/etc/snapshot.py | 18 ++++++++++++------ 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/mk/dist.mk b/mk/dist.mk index 99fad94bf76ab..a203dd8b63991 100644 --- a/mk/dist.mk +++ b/mk/dist.mk @@ -123,7 +123,7 @@ PKG_EXE = dist/$(PKG_NAME)-install.exe $(PKG_EXE): rust.iss modpath.iss upgrade.iss LICENSE.txt rust-logo.ico \ $(CSREQ3_T_$(CFG_BUILD)_H_$(CFG_BUILD)) \ dist-prepare-win - $(CFG_PYTHON) $(S)src/etc/copy-runtime-deps.py tmp/dist/win/bin + $(CFG_PYTHON) $(S)src/etc/copy-runtime-deps.py tmp/dist/win/bin $(CFG_BUILD) @$(call E, ISCC: $@) $(Q)"$(CFG_ISCC)" $< diff --git a/src/etc/copy-runtime-deps.py b/src/etc/copy-runtime-deps.py index 8aab3f18bdad0..fd829cd0ab70f 100644 --- a/src/etc/copy-runtime-deps.py +++ b/src/etc/copy-runtime-deps.py @@ -12,8 +12,8 @@ import snapshot, sys, os, shutil -def copy_runtime_deps(dest_dir): - for path in snapshot.get_winnt_runtime_deps(): +def copy_runtime_deps(dest_dir, triple): + for path in snapshot.get_winnt_runtime_deps(snapshot.get_platform(triple)): shutil.copy(path, dest_dir) lic_dest = os.path.join(dest_dir, "third-party") @@ -21,4 +21,4 @@ def copy_runtime_deps(dest_dir): shutil.rmtree(lic_dest) # copytree() won't overwrite existing files shutil.copytree(os.path.join(os.path.dirname(__file__), "third-party"), lic_dest) -copy_runtime_deps(sys.argv[1]) +copy_runtime_deps(sys.argv[1], sys.argv[2]) diff --git a/src/etc/snapshot.py b/src/etc/snapshot.py index 82302da17b850..24255c0cc5df2 100644 --- a/src/etc/snapshot.py +++ b/src/etc/snapshot.py @@ -39,8 +39,10 @@ def scrub(b): "freebsd": ["bin/rustc"], } -winnt_runtime_deps = ["libgcc_s_dw2-1.dll", - "libstdc++-6.dll"] +winnt_runtime_deps_32 = ["libgcc_s_dw2-1.dll", + "libstdc++-6.dll"] +winnt_runtime_deps_64 = ["libgcc_s_seh-1.dll", + "libstdc++-6.dll"] def parse_line(n, line): global snapshotfile @@ -146,10 +148,14 @@ def hash_file(x): return scrub(h.hexdigest()) # Returns a list of paths of Rust's system runtime dependencies -def get_winnt_runtime_deps(): +def get_winnt_runtime_deps(platform): + if platform == "winnt-x86_64": + deps = winnt_runtime_deps_64 + else: + deps = winnt_runtime_deps_32 runtime_deps = [] - path_dirs = os.environ["PATH"].split(';') - for name in winnt_runtime_deps: + path_dirs = os.environ["PATH"].split(os.pathsep) + for name in deps: for dir in path_dirs: matches = glob.glob(os.path.join(dir, name)) if matches: @@ -189,7 +195,7 @@ def in_tar_name(fn): "Please make a clean build." % "\n ".join(matches)) if kernel=="winnt": - for path in get_winnt_runtime_deps(): + for path in get_winnt_runtime_deps(platform): tar.add(path, "rust-stage0/bin/" + os.path.basename(path)) tar.add(os.path.join(os.path.dirname(__file__), "third-party"), "rust-stage0/bin/third-party")