Linux kernel -stable discussions
 help / color / mirror / Atom feed
* [PATCH v2] scripts/tags.sh: Prevent binary files appearing in cscope.files
       [not found] <CANiq72kHbVQfNrum5D2a5sCd3mFQHNtigrQxP1WW=YcggxA=WQ@mail.gmail.com>
@ 2026-07-14  8:33 ` Sergei Litvin
  2026-07-14 14:00   ` Nicolas Schier
  2026-07-15  9:07   ` Nicolas Schier
  2026-07-14  8:37 ` [PATCH v2] scripts/tags.sh: Add support for rust source files Sergei Litvin
  1 sibling, 2 replies; 6+ messages in thread
From: Sergei Litvin @ 2026-07-14  8:33 UTC (permalink / raw)
  To: miguel.ojeda.sandonis
  Cc: ojeda, nathan, nsc, rust-for-linux, linux-kernel, linux-kbuild,
	Sergei Litvin, stable

When executing the command `make COMPILED_SOURCE=1 cscope`, the resulting
`cscope.files` file contains filenames with the extensions *.rlib, *.rmeta,
and *.so.

To fix this, modify the regular expression in the `all_compiled_sources()`
function so that only files with the extensions *.h, *.c, *.S, and *.rs are
accepted.

The issue has been introduced by commit 4f491bb6ea2a ("scripts/tags.sh: collect
compiled source precisely") which implemented the parsing of compiled sources
from *.cmd files instead of using the "find" command.

Cc: ojeda@kernel.org
Cc: nsc@kernel.org
Cc: nathan@kernel.org
Cc: stable@vger.kernel.org
Fixes: 4f491bb6ea2a ("scripts/tags.sh: collect compiled source precisely")
Signed-off-by: Sergei Litvin <litvindev@gmail.com>

---

This is the first part of this patch:
https://lore.kernel.org/lkml/20260602121521.11650-1-litvindev@gmail.com/

which I have split into two parts, as suggested by Nicolas Schier here:
https://lore.kernel.org/lkml/akVkIrcpNxZrrfii@levanger/

Changes since V1:
https://lore.kernel.org/lkml/20260705175936.4653-1-litvindev@gmail.com/

as suggested by Miguel Ojeda here:
https://lore.kernel.org/lkml/CANiq72kHbVQfNrum5D2a5sCd3mFQHNtigrQxP1WW=YcggxA=WQ@mail.gmail.com/

- Add "Cc: stable@vger.kernel.org" tag
- Add "Fixes:" tag
- Add missed "Signed-off-by:" tag
---
 scripts/tags.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/tags.sh b/scripts/tags.sh
index 243373683f98..c9dc2763a505 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -100,7 +100,7 @@ all_compiled_sources()
 	{
 		echo include/generated/autoconf.h
 		find $ignore -name "*.cmd" -exec \
-			grep -Poh '(?<=^  )\S+|(?<== )\S+[^\\](?=$)' {} \+ |
+			grep -Poh '(?<=^  )\S+\.([chS]|rs)(?=\s)|(?<== )\S+\.(?1)(?=$)' {} \+ |
 		awk '!a[$0]++'
 	} | xargs realpath -esq $([ -z "$KBUILD_ABS_SRCTREE" ] && echo --relative-to=.) |
 	sort -u
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2] scripts/tags.sh: Add support for rust source files
       [not found] <CANiq72kHbVQfNrum5D2a5sCd3mFQHNtigrQxP1WW=YcggxA=WQ@mail.gmail.com>
  2026-07-14  8:33 ` [PATCH v2] scripts/tags.sh: Prevent binary files appearing in cscope.files Sergei Litvin
@ 2026-07-14  8:37 ` Sergei Litvin
  2026-07-14  9:19   ` Miguel Ojeda
  1 sibling, 1 reply; 6+ messages in thread
From: Sergei Litvin @ 2026-07-14  8:37 UTC (permalink / raw)
  To: miguel.ojeda.sandonis
  Cc: ojeda, nathan, nsc, rust-for-linux, linux-kernel, linux-kbuild,
	Sergei Litvin, stable

When executing the command `make cscope`, the `cscope.files` file generated
by it includes only filenames with the extensions *.h, *.c, *.S and not includes
filenames with *.rs extensions.

To fix this, modify the functions `find_arch_sources()`,
`find_arch_include_sources()`, `find_include_sources()`, and
`find_other_sources()` so that they can accept an unlimited number of filename
patterns as parameters for the search. Add the `setup_name_pattern()` function
to convert these filename pattern parameters into a list of parameters that can
be passed to the `find` utility via the new `pattern` variable.

Cc: ojeda@kernel.org
Cc: nsc@kernel.org
Cc: nathan@kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: Sergei Litvin <litvindev@gmail.com>

---

This is the second part of this patch:
https://lore.kernel.org/lkml/20260602121521.11650-1-litvindev@gmail.com/

which I have split into two parts, as suggested by Nicolas Schier here:
https://lore.kernel.org/lkml/akVkIrcpNxZrrfii@levanger/

Changes since V1:
https://lore.kernel.org/lkml/20260705175957.4672-1-litvindev@gmail.com/

as suggested by Miguel Ojeda here:
https://lore.kernel.org/lkml/CANiq72kHbVQfNrum5D2a5sCd3mFQHNtigrQxP1WW=YcggxA=WQ@mail.gmail.com/

- Add "Cc: stable@vger.kernel.org" tag
- Add missed "Signed-off-by:" tag
---
 scripts/tags.sh | 40 +++++++++++++++++++++++++++++++---------
 1 file changed, 31 insertions(+), 9 deletions(-)

diff --git a/scripts/tags.sh b/scripts/tags.sh
index c9dc2763a505..41e38df96984 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -46,13 +46,31 @@ elif [ "${ALLSOURCE_ARCHS}" = "all" ]; then
 	ALLSOURCE_ARCHS=$(find ${tree}arch/ -mindepth 1 -maxdepth 1 -type d -printf '%f ')
 fi
 
+setup_name_pattern()
+{
+	pattern=()
+	for ext; do
+		if [ ${#pattern[@]} -gt 0 ]; then
+			pattern+=("-o" "-name" "$ext")
+		else
+			pattern+=("(" "-name" "$ext")
+		fi
+	done
+	if [ ${#pattern[@]} -gt 0 ]; then
+		pattern+=(")")
+	fi
+}
+
 # find sources in arch/$1
 find_arch_sources()
 {
 	for i in $archincludedir; do
 		local prune="$prune ( -path $i ) -prune -o"
 	done
-	find ${tree}arch/$1 $ignore $prune -name "$2" -not -type l -print;
+	local src=${tree}arch/$1
+	shift
+	setup_name_pattern "$@"
+	find $src $ignore $prune "${pattern[@]}" -not -type l -print;
 }
 
 # find sources in arch/$1/include
@@ -61,14 +79,17 @@ find_arch_include_sources()
 	local include=$(find ${tree}arch/$1/ -name include -type d -print);
 	if [ -n "$include" ]; then
 		archincludedir="$archincludedir $include"
-		find $include $ignore -name "$2" -not -type l -print;
+		shift
+		setup_name_pattern "$@"
+		find $include $ignore "${pattern[@]}" -not -type l -print;
 	fi
 }
 
 # find sources in include/
 find_include_sources()
 {
-	find ${tree}include $ignore -name config -prune -o -name "$1" \
+	setup_name_pattern "$@"
+	find ${tree}include $ignore -name config -prune -o "${pattern[@]}" \
 		-not -type l -print;
 }
 
@@ -76,23 +97,24 @@ find_include_sources()
 # we could benefit from a list of dirs to search in here
 find_other_sources()
 {
+	setup_name_pattern "$@"
 	find ${tree}* $ignore \
 	     \( -path ${tree}include -o -path ${tree}arch -o -name '.tmp_*' \) -prune -o \
-	       -name "$1" -not -type l -print;
+	       "${pattern[@]}" -not -type l -print;
 }
 
 all_sources()
 {
-	find_arch_include_sources ${SRCARCH} '*.[chS]'
+	find_arch_include_sources ${SRCARCH} '*.[chS]' '*.rs'
 	if [ -n "$archinclude" ]; then
-		find_arch_include_sources $archinclude '*.[chS]'
+		find_arch_include_sources $archinclude '*.[chS]' '*.rs'
 	fi
-	find_include_sources '*.[chS]'
+	find_include_sources '*.[chS]' '*.rs'
 	for arch in $ALLSOURCE_ARCHS
 	do
-		find_arch_sources $arch '*.[chS]'
+		find_arch_sources $arch '*.[chS]' '*.rs'
 	done
-	find_other_sources '*.[chS]'
+	find_other_sources '*.[chS]' '*.rs'
 }
 
 all_compiled_sources()
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] scripts/tags.sh: Add support for rust source files
  2026-07-14  8:37 ` [PATCH v2] scripts/tags.sh: Add support for rust source files Sergei Litvin
@ 2026-07-14  9:19   ` Miguel Ojeda
  0 siblings, 0 replies; 6+ messages in thread
From: Miguel Ojeda @ 2026-07-14  9:19 UTC (permalink / raw)
  To: Sergei Litvin
  Cc: ojeda, nathan, nsc, rust-for-linux, linux-kernel, linux-kbuild,
	stable

On Tue, Jul 14, 2026 at 10:37 AM Sergei Litvin <litvindev@gmail.com> wrote:
>
> Cc: stable@vger.kernel.org

To clarify, I meant this one for the other one, i.e. this one sounds a
bit more like a feature.

But I am not sure -- to decide whether it is a fix, it would be nice
to get a description of how each of them breaks something, to decide
whether it is a fix or not, e.g. the other one sounded to me like it
was a mistake because it added extra unexpected files (and I guess
that could in principle confuse tooling or perhaps makes `cscope`
print non-sense in some cases), but does it?

Similarly, for this one, what breaks "in practice" for the end user?
e.g. is there an error message, or does some workflow break, etc.? (It
would be nice to show it in the commit message if so.)

Finally, if this one is a fix too, then this should likely has the
Fixes: hash too.

(By the way, if you send a new version, please Cc the entire `RUST`
entry if you don't mind).

Thanks!

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] scripts/tags.sh: Prevent binary files appearing in cscope.files
  2026-07-14  8:33 ` [PATCH v2] scripts/tags.sh: Prevent binary files appearing in cscope.files Sergei Litvin
@ 2026-07-14 14:00   ` Nicolas Schier
  2026-07-14 14:09     ` Miguel Ojeda
  2026-07-15  9:07   ` Nicolas Schier
  1 sibling, 1 reply; 6+ messages in thread
From: Nicolas Schier @ 2026-07-14 14:00 UTC (permalink / raw)
  To: Sergei Litvin, miguel.ojeda.sandonis, ojeda
  Cc: nathan, rust-for-linux, linux-kernel, linux-kbuild, stable

On Tue, Jul 14, 2026 at 10:33:31AM +0200, Sergei Litvin wrote:
> When executing the command `make COMPILED_SOURCE=1 cscope`, the resulting
> `cscope.files` file contains filenames with the extensions *.rlib, *.rmeta,
> and *.so.
> 
> To fix this, modify the regular expression in the `all_compiled_sources()`
> function so that only files with the extensions *.h, *.c, *.S, and *.rs are
> accepted.
> 
> The issue has been introduced by commit 4f491bb6ea2a ("scripts/tags.sh: collect
> compiled source precisely") which implemented the parsing of compiled sources
> from *.cmd files instead of using the "find" command.
> 
> Cc: ojeda@kernel.org
> Cc: nsc@kernel.org
> Cc: nathan@kernel.org
> Cc: stable@vger.kernel.org
> Fixes: 4f491bb6ea2a ("scripts/tags.sh: collect compiled source precisely")
> Signed-off-by: Sergei Litvin <litvindev@gmail.com>
> 
> ---

Thanks, looks good to me.  W/o this patch 'make COMPILED_SOURCE=1
cscope' is actually not usable on my system, as soon as some rust libs
are in my build tree, so thanks for fixing!

Tested-by: Nicolas Schier <n.schier@fritz.com>
Reviewed-by: Nicolas Schier <n.schier@fritz.com>


As this is a not really a build relevant bug, I think this should go via
some -next rather than a -fixes tree [1].

Miguel, are you with with it if I take this patch as well as the second
one [2] via kbuild-next?

(I tend to remove the Cc trailers from this patch here, as they are
incomplete.)

Kind regards,
Nicolas



[1]: https://lore.kernel.org/r/CAHk-=wjt1NiKOdyAMz_DT7NmZ++SizPOhRSi492ukdTnpDzHQw@mail.gmail.com/
[2]: [PATCH v4] scripts/tags.sh: Add support for rust source files
     https://lore.kernel.org/linux-kbuild/20260714125259.78824-1-litvindev@gmail.com/T/#u


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] scripts/tags.sh: Prevent binary files appearing in cscope.files
  2026-07-14 14:00   ` Nicolas Schier
@ 2026-07-14 14:09     ` Miguel Ojeda
  0 siblings, 0 replies; 6+ messages in thread
From: Miguel Ojeda @ 2026-07-14 14:09 UTC (permalink / raw)
  To: Sergei Litvin, miguel.ojeda.sandonis, ojeda, nathan,
	rust-for-linux, linux-kernel, linux-kbuild, stable

On Tue, Jul 14, 2026 at 4:00 PM Nicolas Schier <nsc@kernel.org> wrote:
>
> Miguel, are you with with it if I take this patch as well as the second
> one [2] via kbuild-next?

Yes, of course, thanks!

Acked-by: Miguel Ojeda <ojeda@kernel.org>

(If the `cscope` target is actually broken in some cases, then I think
it would still be fine in -fixes; but since nobody complained so far,
I guess it is not that urgent anyway...).

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] scripts/tags.sh: Prevent binary files appearing in cscope.files
  2026-07-14  8:33 ` [PATCH v2] scripts/tags.sh: Prevent binary files appearing in cscope.files Sergei Litvin
  2026-07-14 14:00   ` Nicolas Schier
@ 2026-07-15  9:07   ` Nicolas Schier
  1 sibling, 0 replies; 6+ messages in thread
From: Nicolas Schier @ 2026-07-15  9:07 UTC (permalink / raw)
  To: Sergei Litvin
  Cc: miguel.ojeda.sandonis, ojeda, nathan, rust-for-linux,
	linux-kernel, linux-kbuild, stable

On Tue, Jul 14, 2026 at 10:33:31AM +0200, Sergei Litvin wrote:
> When executing the command `make COMPILED_SOURCE=1 cscope`, the resulting
> `cscope.files` file contains filenames with the extensions *.rlib, *.rmeta,
> and *.so.
> 

With removed Cc trailers and adjusted line break in the commit message, applied
to kbuild/linux.git (kbuild-next-unstable), thanks!

[1/1] scripts/tags.sh: Prevent binary files appearing in cscope.files
      https://git.kernel.org/kbuild/c/1e5ebc3f

Please look out for regression or issue reports or other follow up
comments, as they may result in the patch/series getting dropped,
reverted or modified (e.g. trailers). Patches applied to the
kbuild-next-unstable branch are accepted pending wider testing in
linux-next and any post-commit review; they will generally be moved
to the kbuild-next branch in about a week if no issues are found.

Best regards,
-- 
Nicolas

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-07-15  9:13 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CANiq72kHbVQfNrum5D2a5sCd3mFQHNtigrQxP1WW=YcggxA=WQ@mail.gmail.com>
2026-07-14  8:33 ` [PATCH v2] scripts/tags.sh: Prevent binary files appearing in cscope.files Sergei Litvin
2026-07-14 14:00   ` Nicolas Schier
2026-07-14 14:09     ` Miguel Ojeda
2026-07-15  9:07   ` Nicolas Schier
2026-07-14  8:37 ` [PATCH v2] scripts/tags.sh: Add support for rust source files Sergei Litvin
2026-07-14  9:19   ` Miguel Ojeda

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox