From 8ed7f3613c78a938a9e6410cf3820e7463ab54b5 Mon Sep 17 00:00:00 2001 From: Gary Guo Date: Sun, 16 May 2021 07:46:43 +0100 Subject: [PATCH] rust: Run rustdoc for the target triple Signed-off-by: Gary Guo --- rust/Makefile | 12 ++++++++++-- scripts/Makefile.build | 4 +++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/rust/Makefile b/rust/Makefile index cb2f8f80a8e0aa..f03fbdf31999d8 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -13,10 +13,18 @@ obj-$(CONFIG_RUST) += exports.o RUSTDOC = rustdoc +quiet_cmd_rustdoc_host = RUSTDOC $< + cmd_rustdoc_host = \ + RUST_BINDINGS_FILE=$(abspath $(objtree)/rust/bindings_generated.rs) \ + $(RUSTDOC) $(filter-out --emit=%, $(rustc_flags)) \ + $(rustdoc_target_flags) -L $(objtree)/rust/ \ + --output $(objtree)/rust/doc --crate-name $(subst rustdoc-,,$@) \ + -Fmissing-docs @$(objtree)/include/generated/rustc_cfg $< + quiet_cmd_rustdoc = RUSTDOC $< cmd_rustdoc = \ RUST_BINDINGS_FILE=$(abspath $(objtree)/rust/bindings_generated.rs) \ - $(RUSTDOC) $(filter-out --emit=%, $(rustc_flags)) \ + $(RUSTDOC) $(rustc_cross_flags) $(filter-out --emit=%, $(rustc_flags)) \ $(rustdoc_target_flags) -L $(objtree)/rust/ \ --output $(objtree)/rust/doc --crate-name $(subst rustdoc-,,$@) \ -Fmissing-docs @$(objtree)/include/generated/rustc_cfg $< @@ -26,7 +34,7 @@ rustdoc: rustdoc-module rustdoc-compiler_builtins rustdoc-kernel rustdoc-module: private rustdoc_target_flags = --crate-type proc-macro \ --extern proc_macro rustdoc-module: $(srctree)/rust/module.rs FORCE - $(call if_changed,rustdoc) + $(call if_changed,rustdoc_host) rustdoc-compiler_builtins: $(srctree)/rust/compiler_builtins.rs FORCE $(call if_changed,rustdoc) diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 552dce171d7a37..ed8011d5b30b05 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -291,7 +291,9 @@ $(obj)/%.lst: $(src)/%.c FORCE # Compile Rust sources (.rs) # --------------------------------------------------------------------------- -rustc_cross_flags := --target=$(KBUILD_RUSTC_TARGET) +# Need to use absolute path here and have symbolic links resolved; +# otherwise rustdoc and rustc compute different hashes for the target. +rustc_cross_flags := --target=$(realpath $(KBUILD_RUSTC_TARGET)) quiet_cmd_rustc_o_rs = $(RUSTC_OR_CLIPPY_QUIET) $(quiet_modtag) $@ cmd_rustc_o_rs = \