about summary refs log tree commit diff
diff options
context:
space:
mode:
authordanakj <danakj@chromium.org>2021-09-15 11:49:12 -0400
committerdanakj <danakj@chromium.org>2021-09-15 11:49:12 -0400
commit4933be9e2f7bec805980342f882c235c92755a7c (patch)
treea29bda9bdc4f98d5b6473321f6efd858548cb523
parent2a687deee872917b09519519290521fa8dd472b7 (diff)
downloadrust-4933be9e2f7bec805980342f882c235c92755a7c.tar.gz
rust-4933be9e2f7bec805980342f882c235c92755a7c.zip
Verify bin crates are not deterministic on Windows
This disables the remap_cwd_bin test which is failing on windows,
and adds a test for --remap-path-prefix making a bin crate
instead, to see if it will fail the same way.
-rw-r--r--.github/workflows/ci.yml5
-rw-r--r--src/ci/github-actions/ci.yml5
-rw-r--r--src/test/run-make-fulldeps/reproducible-build/Makefile24
3 files changed, 31 insertions, 3 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ff4fa1527e9..76318ab7cb9 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -534,6 +534,11 @@ jobs:
     strategy:
       matrix:
         include:
+          - name: x86_64-msvc-1
+            env:
+              RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-profiler"
+              SCRIPT: make ci-subset-1
+            os: windows-latest-xl
           - name: dist-x86_64-linux
             os: ubuntu-latest-xl
             env: {}
diff --git a/src/ci/github-actions/ci.yml b/src/ci/github-actions/ci.yml
index 6417f5a984a..e4c402b417e 100644
--- a/src/ci/github-actions/ci.yml
+++ b/src/ci/github-actions/ci.yml
@@ -668,6 +668,11 @@ jobs:
     strategy:
       matrix:
         include:
+          - name: x86_64-msvc-1
+            env:
+              RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
+              SCRIPT: make ci-subset-1
+            <<: *job-windows-xl
           - *dist-x86_64-linux
 
   master:
diff --git a/src/test/run-make-fulldeps/reproducible-build/Makefile b/src/test/run-make-fulldeps/reproducible-build/Makefile
index 762cf5ed2ea..46885fdb7df 100644
--- a/src/test/run-make-fulldeps/reproducible-build/Makefile
+++ b/src/test/run-make-fulldeps/reproducible-build/Makefile
@@ -9,12 +9,18 @@ all:  \
 	opt \
 	link_paths \
 	remap_paths \
-	different_source_dirs \
-	remap_cwd_bin \
+	different_source_dirs_bin \
+	different_source_dirs_rlib \
 	remap_cwd_rlib \
 	remap_cwd_to_empty \
 	extern_flags
 
+# TODO: Deterministic builds of `bin` crate types are not deterministic with
+# debuginfo=2 on Windows.
+# See https://github.com/rust-lang/rust/pull/87320#issuecomment-920105533
+#	different_source_dirs_bin \
+#	remap_cwd_bin \
+
 smoke:
 	rm -rf $(TMPDIR) && mkdir $(TMPDIR)
 	$(RUSTC) linker.rs -O
@@ -55,7 +61,19 @@ remap_paths:
 	$(RUSTC) reproducible-build.rs --crate-type rlib --remap-path-prefix=/b=/c
 	cmp "$(TMPDIR)/libreproducible_build.rlib" "$(TMPDIR)/libfoo.rlib" || exit 1
 
-different_source_dirs:
+different_source_dirs_bin:
+	rm -rf $(TMPDIR) && mkdir $(TMPDIR)
+	$(RUSTC) reproducible-build-aux.rs
+	mkdir $(TMPDIR)/test
+	cp reproducible-build.rs $(TMPDIR)/test
+	$(RUSTC) reproducible-build.rs --crate-type bin --remap-path-prefix=$$PWD=/b
+	cp $(TMPDIR)/reproducible-build $(TMPDIR)/foo
+	(cd $(TMPDIR)/test && $(RUSTC) reproducible-build.rs \
+		--remap-path-prefix=$(TMPDIR)/test=/b \
+		--crate-type bin)
+	cmp "$(TMPDIR)/reproducible-build" "$(TMPDIR)/foo" || exit 1
+
+different_source_dirs_rlib:
 	rm -rf $(TMPDIR) && mkdir $(TMPDIR)
 	$(RUSTC) reproducible-build-aux.rs
 	mkdir $(TMPDIR)/test