[PATCH 3/3] rust: warn if `srctree/` links do not exist

Miguel Ojeda posted 3 patches 2 months, 1 week ago
[PATCH 3/3] rust: warn if `srctree/` links do not exist
Posted by Miguel Ojeda 2 months, 1 week ago
`srctree/` links may point to nonexistent files, e.g. due to renames
that missed to update the files or simply because of typos.

Since they can be easily checked for validity, do so and print a warning
in the file does not exist.

This found the following cases already in-tree:

    warning: srctree/ link to include/linux/blk_mq.h does not exist
    warning: srctree/ link to include/linux/drm/drm_gem.h does not exist
    warning: srctree/ link to include/linux/drm/drm_drv.h does not exist
    warning: srctree/ link to include/linux/drm/drm_ioctl.h does not exist
    warning: srctree/ link to include/linux/drm/drm_file.h does not exist
    warning: srctree/ link to include/linux/drm/drm_device.h does not exist

Inspired-by: "Onur Özkan" <work@onurozkan.dev>
Link: https://lore.kernel.org/rust-for-linux/CANiq72=xCYA7z7_rxpzzKkkhJs6m7L_xEaLMuArVn3ZAcyeHdA@mail.gmail.com/
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
---
 rust/Makefile | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/rust/Makefile b/rust/Makefile
index 4e675d210dd8..a27503028216 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -93,6 +93,12 @@ quiet_cmd_rustdoc = RUSTDOC $(if $(rustdoc_host),H, ) $<
 # and then retouch the generated files.
 rustdoc: rustdoc-core rustdoc-macros rustdoc-compiler_builtins \
     rustdoc-kernel rustdoc-pin_init
+	$(Q)grep -Ehro '<a href="srctree/([^"]+)"' $(rustdoc_output) | \
+		cut -d'"' -f2 | cut -d/ -f2- | while read f; do \
+			if [ ! -e "$(srctree)/$$f" ]; then \
+				echo "warning: srctree/ link to $$f does not exist"; \
+			fi \
+		done
 	$(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)/static.files/
 	$(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)/static.files/
 	$(Q)find $(rustdoc_output) -name '*.html' -type f -print0 | xargs -0 sed -Ei \
-- 
2.50.1

Re: [PATCH 3/3] rust: warn if `srctree/` links do not exist
Posted by Onur Özkan 2 months, 1 week ago
On Wed, 30 Jul 2025 15:07:16 +0200
Miguel Ojeda <ojeda@kernel.org> wrote:

> `srctree/` links may point to nonexistent files, e.g. due to renames
> that missed to update the files or simply because of typos.
> 
> Since they can be easily checked for validity, do so and print a
> warning in the file does not exist.
> 
> This found the following cases already in-tree:
> 
>     warning: srctree/ link to include/linux/blk_mq.h does not exist
>     warning: srctree/ link to include/linux/drm/drm_gem.h does not
> exist warning: srctree/ link to include/linux/drm/drm_drv.h does not
> exist warning: srctree/ link to include/linux/drm/drm_ioctl.h does
> not exist warning: srctree/ link to include/linux/drm/drm_file.h does
> not exist warning: srctree/ link to include/linux/drm/drm_device.h
> does not exist
> 
> Inspired-by: "Onur Özkan" <work@onurozkan.dev>
> Link:
> https://lore.kernel.org/rust-for-linux/CANiq72=xCYA7z7_rxpzzKkkhJs6m7L_xEaLMuArVn3ZAcyeHdA@mail.gmail.com/
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org> ---
>  rust/Makefile | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/rust/Makefile b/rust/Makefile
> index 4e675d210dd8..a27503028216 100644
> --- a/rust/Makefile
> +++ b/rust/Makefile
> @@ -93,6 +93,12 @@ quiet_cmd_rustdoc = RUSTDOC $(if
> $(rustdoc_host),H, ) $< # and then retouch the generated files.
>  rustdoc: rustdoc-core rustdoc-macros rustdoc-compiler_builtins \
>      rustdoc-kernel rustdoc-pin_init
> +	$(Q)grep -Ehro '<a href="srctree/([^"]+)"' $(rustdoc_output)
> | \
> +		cut -d'"' -f2 | cut -d/ -f2- | while read f; do \
> +			if [ ! -e "$(srctree)/$$f" ]; then \
> +				echo "warning: srctree/ link to $$f
> does not exist"; \
> +			fi \
> +		done
>  	$(Q)cp $(srctree)/Documentation/images/logo.svg
> $(rustdoc_output)/static.files/ $(Q)cp
> $(srctree)/Documentation/images/COPYING-logo
> $(rustdoc_output)/static.files/ $(Q)find $(rustdoc_output) -name
> '*.html' -type f -print0 | xargs -0 sed -Ei \

That's awesome! This would help a lot. :)


Reviewed-by: Onur Özkan <work@onurozkan.dev>

--

Regards,
Onur