Re: scripts/kernel-doc does not handle duplicate struct & function names (e.g., in amdgpu)

From: Akira Yokosawa
Date: Tue Jul 11 2023 - 23:32:50 EST


Hi Randy,

> [just documenting this for posterity or in case someone wants to fix it.]
>
> In drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c, one can find both
>
> struct amdgpu_vm_tlb_seq_cb {...};
>
> and
> static void amdgpu_vm_tlb_seq_cb(...)
>
> Of course C has no problem with this, but kernel-doc reports:
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:833: WARNING: Duplicate C declaration, also defined at gpu/amdgpu/driver-core:115.
>
> And of course, if the name of one of them is changed, kernel-doc is all happy...
> not that I am suggesting that one of them should be changed.
>
> I just want to make people aware of this. (or maybe people are already aware of this?)

The duplicate warning is emitted from Sphinx, not kernel-doc.

This is a bug of Sphinx >=3.1, first reported by Mauro back in September 2020 at:

https://github.com/sphinx-doc/sphinx/issues/8241

It was closed when a local fix was presented. Unfortunately, it was not
merged at the time and a subsequent pull request was opened at:

https://github.com/sphinx-doc/sphinx/pull/8313

It is not merged yet and carries a milestone of Sphinx 7.x.

Looks like we need to wait patiently.

Thanks, Akira

>
> --
> ~Randy