]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
rust: warn if `srctree/` links do not exist
authorMiguel Ojeda <ojeda@kernel.org>
Wed, 30 Jul 2025 13:07:16 +0000 (15:07 +0200)
committerMiguel Ojeda <ojeda@kernel.org>
Sun, 7 Sep 2025 22:11:19 +0000 (00:11 +0200)
`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/
Reviewed-by: Onur Özkan <work@onurozkan.dev>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Tested-by: Daniel Almeida <daniel.almeida@collabora.com>
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
rust/Makefile

index 62a98c731cc6df25e01a1618327efe90de08595a..29c941024e6f903c3d2a2268246ac25b3fdbdc63 100644 (file)
@@ -98,6 +98,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 \