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

Jani Nikula
2025-04-16T08:34:26Z

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

> 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

--
Jani Nikula, Intel