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

Mauro Carvalho Chehab
2025-04-17T06:32:16Z

Em Wed, 16 Apr 2025 12:36:06 +0300
Andy Shevchenko <andriy.shevchenko@intel.com> escreveu:

> On Wed, Apr 16, 2025 at 05:29:01PM +0800, Mauro Carvalho Chehab wrote:
> > 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:
>
> ...
>
> > > > > 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)
>
> In this case the _CONF makes sense to move together as they are coupled
> semantically.

In a matter of fact, it doesn't...

> > ALLSPHINXOPTS = $(KERNELDOC_CONF) $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)

This is just part of ALLSPHINXOPTS, where it places two definitions
to be used by the Sphinx kerneldoc extension. I need to double-check
it, but I suspect that this is not even used there anymore. If it is
still used, it can be cleaned up after we remove the Perl version.

So, I prefer to keep this (perhaps with a different name) at the
documentation makefile.

Regards,
Mauro