-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of #86045 - jsgf:fix-emit-path-hashing, r=bjorn3
Fix emit path hashing With `--emit KIND=PATH`, the PATH should not affect hashes used for dependency tracking. It does not with other ways of specifying output paths (`-o` or `--out-dir`). Also updates `rustc -Zls` to print more info about crates, which is used here to implement a `run-make` test. It seems there was already a test explicitly checking that `OutputTypes` hash *is* affected by the path. I think this behaviour is wrong, so I updated the test.
- Loading branch information
Showing
6 changed files
with
151 additions
and
33 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
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
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
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
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,37 @@ | ||
-include ../../run-make-fulldeps/tools.mk | ||
|
||
OUT=$(TMPDIR)/emit | ||
|
||
# --emit KIND=PATH should not affect crate hash vs --emit KIND | ||
all: $(OUT)/a/libfoo.rlib $(OUT)/b/libfoo.rlib $(OUT)/c/libfoo.rlib \ | ||
$(TMPDIR)/libfoo.rlib | ||
$(RUSTC) -Zls $(TMPDIR)/libfoo.rlib > $(TMPDIR)/base.txt | ||
$(RUSTC) -Zls $(OUT)/a/libfoo.rlib > $(TMPDIR)/a.txt | ||
$(RUSTC) -Zls $(OUT)/b/libfoo.rlib > $(TMPDIR)/b.txt | ||
$(RUSTC) -Zls $(OUT)/c/libfoo.rlib > $(TMPDIR)/c.txt | ||
|
||
diff $(TMPDIR)/base.txt $(TMPDIR)/a.txt | ||
diff $(TMPDIR)/base.txt $(TMPDIR)/b.txt | ||
|
||
# Different KIND parameters do affect hash. | ||
# diff exits 1 on difference, 2 on trouble | ||
diff $(TMPDIR)/base.txt $(TMPDIR)/c.txt ; test "$$?" -eq 1 | ||
|
||
# Default output name | ||
$(TMPDIR)/libfoo.rlib: foo.rs | ||
$(RUSTC) --emit link foo.rs | ||
|
||
# Output named with -o | ||
$(OUT)/a/libfoo.rlib: foo.rs | ||
mkdir -p $(OUT)/a | ||
$(RUSTC) --emit link -o $@ foo.rs | ||
|
||
# Output named with KIND=PATH | ||
$(OUT)/b/libfoo.rlib: foo.rs | ||
mkdir -p $(OUT)/b | ||
$(RUSTC) --emit link=$@ foo.rs | ||
|
||
# Output multiple kinds | ||
$(OUT)/c/libfoo.rlib: foo.rs | ||
mkdir -p $(OUT)/c | ||
$(RUSTC) --emit link=$@,metadata foo.rs |
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 @@ | ||
#![crate_type = "rlib"] |