2024-01-12 18:34:47

by William McVicker

[permalink] [raw]
Subject: [PATCH v1] checkpatch: allow build files to reference other build files

Add an exception to the EMBEDDED_FILENAME warning for build files. This
fixes the below warnings where the Kconfig and Makefile files reference
other similarly named build files.

WARNING:EMBEDDED_FILENAME: It's generally not useful to have the
filename in the file
#24: FILE: Kconfig:34:
+source "drivers/willmcvicker/Kconfig"

WARNING:EMBEDDED_FILENAME: It's generally not useful to have the
filename in the file
#36: FILE: Makefile:667:
+ } > Makefile

Signed-off-by: Will McVicker <[email protected]>
---
scripts/checkpatch.pl | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index f8343b34a28b..62939f5800cf 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3785,7 +3785,9 @@ sub process {
}

# check for embedded filenames
- if ($rawline =~ /^\+.*\b\Q$realfile\E\b/) {
+ if ($rawline =~ /^\+.*\b\Q$realfile\E\b/ &&
+ $realfile !~ /Kconfig.*/ &&
+ $realfile !~ /Makefile.*/) {
WARN("EMBEDDED_FILENAME",
"It's generally not useful to have the filename in the file\n" . $herecurr);
}

base-commit: 70d201a40823acba23899342d62bc2644051ad2e
--
2.43.0.275.g3460e3d667-goog



2024-01-12 18:49:19

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH v1] checkpatch: allow build files to reference other build files

On Fri, 2024-01-12 at 10:34 -0800, Will McVicker wrote:
> Add an exception to the EMBEDDED_FILENAME warning for build files. This
> fixes the below warnings where the Kconfig and Makefile files reference
> other similarly named build files.
>
> WARNING:EMBEDDED_FILENAME: It's generally not useful to have the
> filename in the file
> #24: FILE: Kconfig:34:
> +source "drivers/willmcvicker/Kconfig"
>
> WARNING:EMBEDDED_FILENAME: It's generally not useful to have the
> filename in the file
> #36: FILE: Makefile:667:
> + } > Makefile

No need to wrap here I think.

> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -3785,7 +3785,9 @@ sub process {
> }
>
> # check for embedded filenames
> - if ($rawline =~ /^\+.*\b\Q$realfile\E\b/) {
> + if ($rawline =~ /^\+.*\b\Q$realfile\E\b/ &&
> + $realfile !~ /Kconfig.*/ &&
> + $realfile !~ /Makefile.*/) {

Align to open parenthesis please.
It's not useful to have .* before the /

So perhaps better to be

if ($rawline =~ /^\+.*\b\Q$realfile\E\b/ &&
$realfile !~ /(?:Kconfig|Makefile)/) {

> WARN("EMBEDDED_FILENAME",
> "It's generally not useful to have the filename in the file\n" . $herecurr);
> }


2024-01-12 22:17:05

by William McVicker

[permalink] [raw]
Subject: Re: [PATCH v1] checkpatch: allow build files to reference other build files

On 01/12/2024, Joe Perches wrote:
> On Fri, 2024-01-12 at 10:34 -0800, Will McVicker wrote:
> > Add an exception to the EMBEDDED_FILENAME warning for build files. This
> > fixes the below warnings where the Kconfig and Makefile files reference
> > other similarly named build files.
> >
> > WARNING:EMBEDDED_FILENAME: It's generally not useful to have the
> > filename in the file
> > #24: FILE: Kconfig:34:
> > +source "drivers/willmcvicker/Kconfig"
> >
> > WARNING:EMBEDDED_FILENAME: It's generally not useful to have the
> > filename in the file
> > #36: FILE: Makefile:667:
> > + } > Makefile
>
> No need to wrap here I think.

You're right. I'll update in v2.

>
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> []
> > @@ -3785,7 +3785,9 @@ sub process {
> > }
> >
> > # check for embedded filenames
> > - if ($rawline =~ /^\+.*\b\Q$realfile\E\b/) {
> > + if ($rawline =~ /^\+.*\b\Q$realfile\E\b/ &&
> > + $realfile !~ /Kconfig.*/ &&
> > + $realfile !~ /Makefile.*/) {
>
> Align to open parenthesis please.
> It's not useful to have .* before the /

I was following other references in this file, but looks like you're right that
it's not needed. Your recommendation passed the tests I have. So I'll update
the regex in v2.

Thanks,
Will

>
> So perhaps better to be
>
> if ($rawline =~ /^\+.*\b\Q$realfile\E\b/ &&
> $realfile !~ /(?:Kconfig|Makefile)/) {
>
> > WARN("EMBEDDED_FILENAME",
> > "It's generally not useful to have the filename in the file\n" . $herecurr);
> > }
>