Re: [PATCH v3 1/2] scripts/kernel-doc.py: don't create *.pyc files

Mauro Carvalho Chehab
2025-04-16T09:29:28Z

Em Wed, 16 Apr 2025 17:19:17 +0800
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> escreveu:

> Em Wed, 16 Apr 2025 11:34:16 +0300
> Jani Nikula <jani.nikula@linux.intel.com> escreveu:
>
> > On Wed, 16 Apr 2025, Mauro Carvalho Chehab <mchehab+huawei@kernel.org> wrote:
> > > As reported by Andy, kernel-doc.py is creating a __pycache__
> > > directory at build time.
> > >
> > > Disable creation of __pycache__ for the libraries used by
> > > kernel-doc.py, when excecuted via the build system or via
> > > scripts/find-unused-docs.sh.
> > >
> > > Reported-by: Andy Shevchenko <andriy.shevchenko@intel.com>
> > > Closes: https://lore.kernel.org/linux-doc/Z_zYXAJcTD-c3xTe@black.fi.intel.com/
> > > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> > > ---
> > > drivers/gpu/drm/Makefile | 2 +-
> > > drivers/gpu/drm/i915/Makefile | 2 +-
> > > include/drm/Makefile | 2 +-
> > > scripts/Makefile.build | 2 +-
> > > scripts/find-unused-docs.sh | 2 +-
> > > 5 files changed, 5 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
> > > index ed54a546bbe2..d21d0cd2c752 100644
> > > --- a/drivers/gpu/drm/Makefile
> > > +++ b/drivers/gpu/drm/Makefile
> > > @@ -236,7 +236,7 @@ always-$(CONFIG_DRM_HEADER_TEST) += \
> > > quiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@)
> > > cmd_hdrtest = \
> > > $(CC) $(c_flags) -fsyntax-only -x c /dev/null -include $< -include $<; \
> > > - $(srctree)/scripts/kernel-doc -none $(if $(CONFIG_WERROR)$(CONFIG_DRM_WERROR),-Werror) $<; \
> > > + PYTHONDONTWRITEBYTECODE=1 $(KERNELDOC) -none $(if $(CONFIG_WERROR)$(CONFIG_DRM_WERROR),-Werror) $<; \
> >
> > KERNELDOC is not set here.
>
> >
> > /bin/sh: 1: -none: not found
>
> Weird. This is set on Documentation/Makefile:
>
> $ grep KERNELDOC Documentation/Makefile
> KERNELDOC = $(srctree)/scripts/kernel-doc.py
> ...
>
> drivers/gpu/drm/Makefile should be able to see this variable there...

I suspect that the building system tries to confine variables to
sub-directories, so maybe one solution would be to move it to the
main makefile.

could you please check if this patch solves the issue?

[PATCH] Makefile: move KERNELDOC macro to the main Makefile

As kernel-doc script is used not only on Documentation, but
also on scripts and drivers/drm Makefiles, move it to the
main makefile, as otherwise sub-makefiles may not have it.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

diff --git a/Documentation/Makefile b/Documentation/Makefile
index c022b97c487e..7a2069e87dbd 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -60,7 +60,6 @@ endif #HAVE_LATEXMK
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
-KERNELDOC = $(srctree)/scripts/kernel-doc.py
KERNELDOC_CONF = -D kerneldoc_srctree=$(srctree) -D kerneldoc_bin=$(KERNELDOC)
ALLSPHINXOPTS = $(KERNELDOC_CONF) $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)
ifneq ($(wildcard $(srctree)/.config),)
diff --git a/Makefile b/Makefile
index 38689a0c3605..c8e46f0c1f63 100644
--- a/Makefile
+++ b/Makefile
@@ -458,6 +458,8 @@ endif
HOSTRUSTC = rustc
HOSTPKG_CONFIG = pkg-config

+KERNELDOC = $(srctree)/scripts/kernel-doc.py
+
KBUILD_USERHOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
-O2 -fomit-frame-pointer -std=gnu11
KBUILD_USERCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(USERCFLAGS)