| # ignore-cross-compile |
| include ../tools.mk |
| |
| # ignore-musl |
| # Objects are reproducible but their path is not. |
| |
| all: \ |
| smoke \ |
| debug \ |
| opt \ |
| link_paths \ |
| remap_paths \ |
| different_source_dirs_rlib \ |
| remap_cwd_rlib \ |
| remap_cwd_to_empty \ |
| extern_flags |
| |
| # TODO: Builds of `bin` crate types are not deterministic with debuginfo=2 on |
| # Windows. |
| # See: https://github.com/rust-lang/rust/pull/87320#issuecomment-920105533 |
| # Issue: https://github.com/rust-lang/rust/issues/88982 |
| # |
| # different_source_dirs_bin \ |
| # remap_cwd_bin \ |
| |
| smoke: |
| rm -rf $(TMPDIR) && mkdir $(TMPDIR) |
| $(RUSTC) linker.rs -O |
| $(RUSTC) reproducible-build-aux.rs |
| $(RUSTC) reproducible-build.rs -C linker=$(call RUN_BINFILE,linker) |
| $(RUSTC) reproducible-build.rs -C linker=$(call RUN_BINFILE,linker) |
| diff -u "$(TMPDIR)/linker-arguments1" "$(TMPDIR)/linker-arguments2" |
| |
| debug: |
| rm -rf $(TMPDIR) && mkdir $(TMPDIR) |
| $(RUSTC) linker.rs -O |
| $(RUSTC) reproducible-build-aux.rs -g |
| $(RUSTC) reproducible-build.rs -C linker=$(call RUN_BINFILE,linker) -g |
| $(RUSTC) reproducible-build.rs -C linker=$(call RUN_BINFILE,linker) -g |
| diff -u "$(TMPDIR)/linker-arguments1" "$(TMPDIR)/linker-arguments2" |
| |
| opt: |
| rm -rf $(TMPDIR) && mkdir $(TMPDIR) |
| $(RUSTC) linker.rs -O |
| $(RUSTC) reproducible-build-aux.rs -O |
| $(RUSTC) reproducible-build.rs -C linker=$(call RUN_BINFILE,linker) -O |
| $(RUSTC) reproducible-build.rs -C linker=$(call RUN_BINFILE,linker) -O |
| diff -u "$(TMPDIR)/linker-arguments1" "$(TMPDIR)/linker-arguments2" |
| |
| link_paths: |
| rm -rf $(TMPDIR) && mkdir $(TMPDIR) |
| $(RUSTC) reproducible-build-aux.rs |
| $(RUSTC) reproducible-build.rs --crate-type rlib -L /b |
| cp $(TMPDIR)/libreproducible_build.rlib $(TMPDIR)/libfoo.rlib |
| $(RUSTC) reproducible-build.rs --crate-type rlib -L /a |
| cmp "$(TMPDIR)/libreproducible_build.rlib" "$(TMPDIR)/libfoo.rlib" || exit 1 |
| |
| remap_paths: |
| rm -rf $(TMPDIR) && mkdir $(TMPDIR) |
| $(RUSTC) reproducible-build-aux.rs |
| $(RUSTC) reproducible-build.rs --crate-type rlib --remap-path-prefix=/a=/c |
| cp $(TMPDIR)/libreproducible_build.rlib $(TMPDIR)/libfoo.rlib |
| $(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_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 |
| cp reproducible-build.rs $(TMPDIR)/test |
| $(RUSTC) reproducible-build.rs --crate-type rlib --remap-path-prefix=$$PWD=/b |
| cp $(TMPDIR)/libreproducible_build.rlib $(TMPDIR)/libfoo.rlib |
| (cd $(TMPDIR)/test && $(RUSTC) reproducible-build.rs \ |
| --remap-path-prefix=$(TMPDIR)/test=/b \ |
| --crate-type rlib) |
| cmp "$(TMPDIR)/libreproducible_build.rlib" "$(TMPDIR)/libfoo.rlib" || exit 1 |
| |
| remap_cwd_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 -C debuginfo=2 \ |
| -Z remap-cwd-prefix=. |
| cp $(TMPDIR)/reproducible-build $(TMPDIR)/first |
| (cd $(TMPDIR)/test && \ |
| $(RUSTC) reproducible-build.rs --crate-type bin -C debuginfo=2 \ |
| -Z remap-cwd-prefix=.) |
| cmp "$(TMPDIR)/first" "$(TMPDIR)/reproducible-build" || exit 1 |
| |
| remap_cwd_rlib: |
| 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 rlib -C debuginfo=2 \ |
| -Z remap-cwd-prefix=. |
| cp $(TMPDIR)/libreproducible_build.rlib $(TMPDIR)/libfirst.rlib |
| (cd $(TMPDIR)/test && \ |
| $(RUSTC) reproducible-build.rs --crate-type rlib -C debuginfo=2 \ |
| -Z remap-cwd-prefix=.) |
| cmp "$(TMPDIR)/libfirst.rlib" "$(TMPDIR)/libreproducible_build.rlib" || exit 1 |
| |
| remap_cwd_to_empty: |
| 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 rlib -C debuginfo=2 \ |
| -Z remap-cwd-prefix= |
| cp $(TMPDIR)/libreproducible_build.rlib $(TMPDIR)/libfirst.rlib |
| (cd $(TMPDIR)/test && \ |
| $(RUSTC) reproducible-build.rs --crate-type rlib -C debuginfo=2 \ |
| -Z remap-cwd-prefix=) |
| cmp "$(TMPDIR)/libfirst.rlib" "$(TMPDIR)/libreproducible_build.rlib" || exit 1 |
| |
| extern_flags: |
| rm -rf $(TMPDIR) && mkdir $(TMPDIR) |
| $(RUSTC) reproducible-build-aux.rs |
| $(RUSTC) reproducible-build.rs \ |
| --extern reproducible_build_aux=$(TMPDIR)/libreproducible_build_aux.rlib \ |
| --crate-type rlib |
| cp $(TMPDIR)/libreproducible_build_aux.rlib $(TMPDIR)/libbar.rlib |
| cp $(TMPDIR)/libreproducible_build.rlib $(TMPDIR)/libfoo.rlib |
| $(RUSTC) reproducible-build.rs \ |
| --extern reproducible_build_aux=$(TMPDIR)/libbar.rlib \ |
| --crate-type rlib |
| cmp "$(TMPDIR)/libreproducible_build.rlib" "$(TMPDIR)/libfoo.rlib" || exit 1 |