Re: [PATCH v2] scripts: kernel-doc: Always increment warnings counter

From: Jonathan Corbet
Date: Mon Jun 13 2022 - 15:22:48 EST


Niklas Söderlund <niklas.soderlund@xxxxxxxxxxxx> writes:

> Some warnings do not increment the warnings counter making the behavior
> of running kernel-doc with -Werror unlogical as some warnings will be
> generated but not treated as errors.
>
> Fix this by creating a helper function that always incrementing the
> warnings counter every time a warning is emitted. There is one location
> in get_sphinx_version() where a warning is not touched as it concerns
> the execution environment of the kernel-doc and not the documentation
> being processed.
>
> Incrementing the counter only have effect when running kernel-doc in
> either verbose mode (-v or environment variable KBUILD_VERBOSE) or when
> treating warnings as errors (-Werror or environment variable
> KDOC_WERROR). In both cases the number of warnings printed is printed to
> stderr and for the later the exit code of kernel-doc is non-zero if
> warnings where encountered.
>
> Simple test case to demo one of the warnings,
>
> $ cat test.c
> /**
> * foo() - Description
> */
> int bar();
>
> # Without this change
> $ ./scripts/kernel-doc -Werror -none test.c
> test.c:4: warning: expecting prototype for foo(). Prototype was for
> bar() instead
>
> # With this change
> $ ./scripts/kernel-doc -Werror -none test.c
> test.c:4: warning: expecting prototype for foo(). Prototype was for
> bar() instead
> 1 warnings as Errors
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund@xxxxxxxxxxxx>
> ---
> * Changes since v1
> - Added a helper emit_warning() to print the message and increment the
> counter instead of adding statements to increment the counter where it
> was missing.

Thanks for making this change. Anything that rationalizes this horrific
script even a little bit is more than welcome.

I've applied the patch, thanks.

jon