140 lines
5.1 KiB
Makefile
140 lines
5.1 KiB
Makefile
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
|