[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <70955fc0-84c0-440f-85ba-2d97418ca827@infradead.org>
Date: Fri, 30 Jan 2026 15:18:22 -0800
From: Randy Dunlap <rdunlap@...radead.org>
To: Nathan Chancellor <nathan@...nel.org>, Nicolas Schier <nsc@...nel.org>,
Jonathan Corbet <corbet@....net>
Cc: linux-kbuild@...r.kernel.org, linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org, stable@...r.kernel.org, Rong Zhang
<i@...g.moe>, Mauro Carvalho Chehab <mchehab+huawei@...nel.org>
Subject: Re: [PATCH] kbuild: Do not run kernel-doc when building external
modules
On 1/30/26 1:37 PM, Nathan Chancellor wrote:
> After commit 778b8ebe5192 ("docs: Move the python libraries to
> tools/lib/python"), building an external module with any value of W=
> against the output of install-extmod-build fails with:
>
> $ make -C /usr/lib/modules/6.19.0-rc7-00108-g4d310797262f/build M=$PWD W=1
> make: Entering directory '/usr/lib/modules/6.19.0-rc7-00108-g4d310797262f/build'
> make[1]: Entering directory '...'
> CC [M] ...
> Traceback (most recent call last):
> File "/usr/lib/modules/6.19.0-rc7-00108-g4d310797262f/build/scripts/kernel-doc.py", line 339, in <module>
> main()
> ~~~~^^
> File "/usr/lib/modules/6.19.0-rc7-00108-g4d310797262f/build/scripts/kernel-doc.py", line 295, in main
> from kdoc.kdoc_files import KernelFiles # pylint: disable=C0415
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> ModuleNotFoundError: No module named 'kdoc'
>
> scripts/lib was included in the build directory from find_in_scripts but
> after the move to tools/lib/python, it is no longer included, breaking
> kernel-doc.py.
>
> Commit eba6ffd126cd ("docs: kdoc: move kernel-doc to tools/docs") breaks
> this even further by moving kernel-doc outside of scripts as well, so it
> cannot be found when called by cmd_checkdoc.
>
> $ make -C /usr/lib/modules/6.19.0-rc7-next-20260130/build M=$PWD W=1
> make: Entering directory '/usr/lib/modules/6.19.0-rc7-next-20260130/build'
> make[1]: Entering directory '...'
> CC [M] ...
> python3: can't open file '/usr/lib/modules/6.19.0-rc7-next-20260130/build/tools/docs/kernel-doc': [Errno 2] No such file or directory
>
> While kernel-doc could be useful for external modules, it is more useful
> for in-tree documentation that will be build and included in htmldocs.
> Rather than including it in install-extmod-build, just skip running
> kernel-doc for the external module build.
>
> Cc: stable@...r.kernel.org
> Fixes: 778b8ebe5192 ("docs: Move the python libraries to tools/lib/python")
> Reported-by: Rong Zhang <i@...g.moe>
> Closes: https://lore.kernel.org/20260129175321.415295-1-i@rong.moe/
> Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@...nel.org>
> Signed-off-by: Nathan Chancellor <nathan@...nel.org>
LGTM.
Reviewed-by: Randy Dunlap <rdunlap@...radead.org>
Thanks.
> ---
> This is an alternative to Rong's proposed fix for the first error:
>
> https://lore.kernel.org/20260129175321.415295-1-i@rong.moe/
>
> I noticed the second one by inspection of -next and further testing.
> ---
> scripts/Makefile.build | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index 5037f4715d74..f01d7957edf7 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -166,11 +166,13 @@ else ifeq ($(KBUILD_CHECKSRC),2)
> cmd_force_checksrc = $(CHECK) $(CHECKFLAGS) $(c_flags) $<
> endif
>
> +ifeq ($(KBUILD_EXTMOD),)
> ifneq ($(KBUILD_EXTRA_WARN),)
> cmd_checkdoc = PYTHONDONTWRITEBYTECODE=1 $(PYTHON3) $(KERNELDOC) -none $(KDOCFLAGS) \
> $(if $(findstring 2, $(KBUILD_EXTRA_WARN)), -Wall) \
> $<
> endif
> +endif
>
> # Compile C sources (.c)
> # ---------------------------------------------------------------------------
>
> ---
> base-commit: 63804fed149a6750ffd28610c5c1c98cce6bd377
> change-id: 20260130-kbuild-skip-kernel-doc-extmod-276584e7b2b0
>
> Best regards,
> --
> Nathan Chancellor <nathan@...nel.org>
>
>
--
~Randy
Powered by blists - more mailing lists