Subject: Re: linux-next: build failure after merge all the trees

From: Mauro Carvalho Chehab <[email-masked]>
Date: Fri, 9 May 2025 08:47:04 +0200

Em Thu, 8 May 2025 17:46:03 -0700
Dan Williams <[email-masked]> escreveu:

> Stephen Rothwell wrote:
> > Hi Akira,
> > 
> > On Thu, 8 May 2025 19:54:08 +0900 Akira Yokosawa <[email-masked]> wrote:  
> > >
> > > Please try:
> > > 
> > >   make O="$HOME/next/htmldocs" KERNELDOC=scripts/kernel-doc.pl htmldocs
> > > 
> > > , assuming your $HOME/next/next is the top of kernel source.
> > > 
> > > I'm suspecting that the conflict resolution done in
> > > c84724f2137f ("Merge branch 'for-6.16/tsm-mr' into tsm-next")
> > > ended up in mismatching path names given to "kernel-doc::" somewhere.
> > > 
> > > Looks like recent conversion of the kernel-doc script into python
> > > has changed the behavior in such error conditions.
> > > With the perl version, you'll see a couple of:
> > > 
> > >     Error: Cannot open file <...>/linux/drivers/virt/coco/tsm-mr.c
> > > 
> > > , but the doc build should complete.  
> > 
> > OK, so, yes, the build completes.  I get the following message
> > (multiple similar ones):
> > 
> > WARNING: kernel-doc 'scripts/kernel-doc.pl -rst -enable-lineno -export -export-file drivers/misc/mei/bus.c drivers/misc/mei/bus.c' processing failed with: [Errno 2] No such file or directory: 'scripts/kernel-doc.pl'
> > 
> > So, I used "KERNELDOC=$(pwd)/scripts/kernel-doc.pl" and tried again.
> > 
> > I got these (new) messages:
> > 
> > Error: Cannot open file drivers/virt/coco/tsm-mr.c
> > Error: Cannot open file drivers/virt/coco/tsm-mr.c
> > WARNING: kernel-doc 'scripts/kernel-doc.pl -rst -enable-lineno -export drivers/virt/coco/tsm-mr.c' failed with return code 2
> > 
> > (and a few other innocuous ones)

The same messages can be seen if we don't use Sphinx logger facility,
using the default Python logging class instead:

diff --git a/Documentation/sphinx/kerneldoc.py b/Documentation/sphinx/kerneldoc.py
index b713a2c4a615..914ebfe2080b 100644
--- a/Documentation/sphinx/kerneldoc.py
+++ b/Documentation/sphinx/kerneldoc.py
@@ -311,7 +311,7 @@ def setup_kfiles(app):
     if kerneldoc_bin and kerneldoc_bin.endswith("kernel-doc.py"):
         print("Using Python kernel-doc")
         out_style = RestFormat()
-        kfiles = KernelFiles(out_style=out_style, logger=logger)
+        kfiles = KernelFiles(out_style=out_style)
     else:
         print(f"Using {kerneldoc_bin}")

Somehow, Sphinx is sending such messages to /dev/null if we don't use V=1.

I'll see if I can discover why Sphinx is doing that.

Thanks,
Mauro