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

Mauro Carvalho Chehab
2025-04-16T09:19:42Z

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...

>
> > touch $@
> >
> > $(obj)/%.hdrtest: $(src)/%.h FORCE
> > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> > index ed05b131ed3a..ab6b89a163e7 100644
> > --- a/drivers/gpu/drm/i915/Makefile
> > +++ b/drivers/gpu/drm/i915/Makefile
> > @@ -408,7 +408,7 @@ obj-$(CONFIG_DRM_I915_GVT_KVMGT) += kvmgt.o
> > #
> > # Enable locally for CONFIG_DRM_I915_WERROR=y. See also scripts/Makefile.build
> > ifdef CONFIG_DRM_I915_WERROR
> > - cmd_checkdoc = $(srctree)/scripts/kernel-doc -none -Werror $<
> > + cmd_checkdoc = PYTHONDONTWRITEBYTECODE=1 $(KERNELDOC) -none -Werror $<
> > endif
> >
> > # header test
> > diff --git a/include/drm/Makefile b/include/drm/Makefile
> > index a7bd15d2803e..1df6962556ef 100644
> > --- a/include/drm/Makefile
> > +++ b/include/drm/Makefile
> > @@ -11,7 +11,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) $<; \
> > touch $@
> >
> > $(obj)/%.hdrtest: $(src)/%.h FORCE
> > diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> > index 13dcd86e74ca..884dc86ce04e 100644
> > --- a/scripts/Makefile.build
> > +++ b/scripts/Makefile.build
> > @@ -83,7 +83,7 @@ else ifeq ($(KBUILD_CHECKSRC),2)
> > endif
> >
> > ifneq ($(KBUILD_EXTRA_WARN),)
> > - cmd_checkdoc = $(srctree)/scripts/kernel-doc -none $(KDOCFLAGS) \
> > + cmd_checkdoc = PYTHONDONTWRITEBYTECODE=1 $(KERNELDOC) -none $(KDOCFLAGS) \
> > $(if $(findstring 2, $(KBUILD_EXTRA_WARN)), -Wall) \
> > $<
> > endif
> > diff --git a/scripts/find-unused-docs.sh b/scripts/find-unused-docs.sh
> > index ee6a50e33aba..d6d397fbf917 100755
> > --- a/scripts/find-unused-docs.sh
> > +++ b/scripts/find-unused-docs.sh
> > @@ -54,7 +54,7 @@ for file in `find $1 -name '*.c'`; do
> > if [[ ${FILES_INCLUDED[$file]+_} ]]; then
> > continue;
> > fi
> > - str=$(scripts/kernel-doc -export "$file" 2>/dev/null)
> > + str=$(PYTHONDONTWRITEBYTECODE=1 scripts/kernel-doc -export "$file" 2>/dev/null)
> > if [[ -n "$str" ]]; then
> > echo "$file"
> > fi
>