On Fri, 14 Jul 2023 18:13:55 +0900 Asahi Lina <lina@xxxxxxxxxxxxx> wrote: > We want to use caller_location to uniquely identify callsites, to > automatically create lockdep classes without macros. The location > filename in local code uses the relative path passed to the compiler, > but if that code is generic and instantiated from another crate, the > path becomes absolute. > > To make this work and keep the paths consistent, always pass an absolute > path to the compiler. Then the Location path is always identical > regardless of how the code is being compiled. I wonder if this can have some reproducible build implications. We probably also need to use remap-path-prefix? > > Signed-off-by: Asahi Lina <lina@xxxxxxxxxxxxx> > --- > rust/Makefile | 2 +- > scripts/Makefile.build | 8 ++++---- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/rust/Makefile b/rust/Makefile > index 7c9d9f11aec5..552f023099c8 100644 > --- a/rust/Makefile > +++ b/rust/Makefile > @@ -369,7 +369,7 @@ quiet_cmd_rustc_library = $(if $(skip_clippy),RUSTC,$(RUSTC_OR_CLIPPY_QUIET)) L > --emit=dep-info=$(depfile) --emit=obj=$@ \ > --emit=metadata=$(dir $@)$(patsubst %.o,lib%.rmeta,$(notdir $@)) \ > --crate-type rlib -L$(objtree)/$(obj) \ > - --crate-name $(patsubst %.o,%,$(notdir $@)) $< \ > + --crate-name $(patsubst %.o,%,$(notdir $@)) $(abspath $<) \ > $(if $(rustc_objcopy),;$(OBJCOPY) $(rustc_objcopy) $@) > > rust-analyzer: > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > index 6413342a03f4..c925b90ebd80 100644 > --- a/scripts/Makefile.build > +++ b/scripts/Makefile.build > @@ -283,27 +283,27 @@ rust_common_cmd = \ > # would not match each other. > > quiet_cmd_rustc_o_rs = $(RUSTC_OR_CLIPPY_QUIET) $(quiet_modtag) $@ > - cmd_rustc_o_rs = $(rust_common_cmd) --emit=obj=$@ $< > + cmd_rustc_o_rs = $(rust_common_cmd) --emit=obj=$@ $(abspath $<) > > $(obj)/%.o: $(src)/%.rs FORCE > $(call if_changed_dep,rustc_o_rs) > > quiet_cmd_rustc_rsi_rs = $(RUSTC_OR_CLIPPY_QUIET) $(quiet_modtag) $@ > cmd_rustc_rsi_rs = \ > - $(rust_common_cmd) -Zunpretty=expanded $< >$@; \ > + $(rust_common_cmd) -Zunpretty=expanded $(abspath $<) >$@; \ > command -v $(RUSTFMT) >/dev/null && $(RUSTFMT) $@ > > $(obj)/%.rsi: $(src)/%.rs FORCE > $(call if_changed_dep,rustc_rsi_rs) > > quiet_cmd_rustc_s_rs = $(RUSTC_OR_CLIPPY_QUIET) $(quiet_modtag) $@ > - cmd_rustc_s_rs = $(rust_common_cmd) --emit=asm=$@ $< > + cmd_rustc_s_rs = $(rust_common_cmd) --emit=asm=$@ $(abspath $<) > > $(obj)/%.s: $(src)/%.rs FORCE > $(call if_changed_dep,rustc_s_rs) > > quiet_cmd_rustc_ll_rs = $(RUSTC_OR_CLIPPY_QUIET) $(quiet_modtag) $@ > - cmd_rustc_ll_rs = $(rust_common_cmd) --emit=llvm-ir=$@ $< > + cmd_rustc_ll_rs = $(rust_common_cmd) --emit=llvm-ir=$@ $(abspath $<) > > $(obj)/%.ll: $(src)/%.rs FORCE > $(call if_changed_dep,rustc_ll_rs) >