* [PATCH] scripts/tags.sh: Prevent binary files appearing in cscope.files
[not found] <https://lore.kernel.org/lkml/akVkIrcpNxZrrfii@levanger/>
@ 2026-07-05 17:59 ` Sergei Litvin
2026-07-05 18:05 ` Miguel Ojeda
2026-07-05 17:59 ` [PATCH] " Sergei Litvin
1 sibling, 1 reply; 9+ messages in thread
From: Sergei Litvin @ 2026-07-05 17:59 UTC (permalink / raw)
To: nsc
Cc: miguel.ojeda.sandonis, nathan, rust-for-linux, linux-kernel,
linux-kbuild, ojeda, Sergei Litvin
PROBLEM
When executing the command `make COMPILED_SOURCE=1 cscope`, the resulting
`cscope.files` file contains filenames with the extensions *.rlib, *.rmeta,
and *.so.
SOLUTION
Modify the regular expression in the `all_compiled_sources()` function so
that only files with the extensions *.h, *.c, *.S, and *.rs are accepted.
---
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/
Signed-off-by: Sergei Litvin <litvindev@gmail.com>
---
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.54.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH] scripts/tags.sh: Add support for rust source files
[not found] <https://lore.kernel.org/lkml/akVkIrcpNxZrrfii@levanger/>
2026-07-05 17:59 ` [PATCH] scripts/tags.sh: Prevent binary files appearing in cscope.files Sergei Litvin
@ 2026-07-05 17:59 ` Sergei Litvin
1 sibling, 0 replies; 9+ messages in thread
From: Sergei Litvin @ 2026-07-05 17:59 UTC (permalink / raw)
To: nsc
Cc: miguel.ojeda.sandonis, nathan, rust-for-linux, linux-kernel,
linux-kbuild, ojeda, Sergei Litvin
PROBLEM
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.
SOLUTION
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.
This causes `make cscope` command to generate a `cscope.files` file that
contains *.rs files along with *.h, *.c, *.S
---
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/
Signed-off-by: Sergei Litvin <litvindev@gmail.com>
---
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.54.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] scripts/tags.sh: Prevent binary files appearing in cscope.files
2026-07-05 17:59 ` [PATCH] scripts/tags.sh: Prevent binary files appearing in cscope.files Sergei Litvin
@ 2026-07-05 18:05 ` Miguel Ojeda
2026-07-14 8:33 ` [PATCH v2] " Sergei Litvin
2026-07-14 8:37 ` [PATCH v2] scripts/tags.sh: Add support for rust source files Sergei Litvin
0 siblings, 2 replies; 9+ messages in thread
From: Miguel Ojeda @ 2026-07-05 18:05 UTC (permalink / raw)
To: Sergei Litvin
Cc: nsc, nathan, rust-for-linux, linux-kernel, linux-kbuild, ojeda
On Sun, Jul 5, 2026 at 7:59 PM Sergei Litvin <litvindev@gmail.com> wrote:
>
> PROBLEM
> SOLUTION
We don't typically use titles like these in commits. (Same for the other patch.)
> This causes `make cscope` command to generate a `cscope.files` file that
> contains *.rs files along with *.h, *.c, *.S
Missing Signed-off-by -- the one you wrote is below, in the part that
doesn't go into the commit, i.e. after the `---` line. (Same for the
other patch.)
Also consider using `-v2` in `git format-patch` to annotate which version it is.
By the way, this sounds like it could be backported? i.e. perhaps we
want a Fixes: tag and Cc: stable@vger.kernel.org.
Thanks!
Cheers,
Miguel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2] scripts/tags.sh: Prevent binary files appearing in cscope.files
2026-07-05 18:05 ` Miguel Ojeda
@ 2026-07-14 8:33 ` Sergei Litvin
2026-07-14 14:00 ` Nicolas Schier
2026-07-14 8:37 ` [PATCH v2] scripts/tags.sh: Add support for rust source files Sergei Litvin
1 sibling, 1 reply; 9+ 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] 9+ messages in thread
* [PATCH v2] scripts/tags.sh: Add support for rust source files
2026-07-05 18:05 ` Miguel Ojeda
2026-07-14 8:33 ` [PATCH v2] " Sergei Litvin
@ 2026-07-14 8:37 ` Sergei Litvin
2026-07-14 9:19 ` Miguel Ojeda
1 sibling, 1 reply; 9+ 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] 9+ 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
2026-07-14 12:24 ` [PATCH v3] " Sergei Litvin
0 siblings, 1 reply; 9+ 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] 9+ messages in thread
* [PATCH v3] scripts/tags.sh: Add support for rust source files
2026-07-14 9:19 ` Miguel Ojeda
@ 2026-07-14 12:24 ` Sergei Litvin
2026-07-14 12:52 ` [PATCH v4] " Sergei Litvin
0 siblings, 1 reply; 9+ messages in thread
From: Sergei Litvin @ 2026-07-14 12:24 UTC (permalink / raw)
To: miguel.ojeda.sandonis
Cc: rust-for-linux, linux-kernel, linux-kbuild, ojeda, boqun, gary,
bjorn3_gh, lossin, a.hindborg, aliceryhl, tmgross, dakr,
daniel.almeida, tamird, acourbot, work, nathan, nsc,
Sergei Litvin
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: Miguel Ojeda <ojeda@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Gary Guo <gary@garyguo.net>
Cc: Björn Roy Baron <bjorn3_gh@protonmail.com>
Cc: Benno Lossin <lossin@kernel.org>
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Alice Ryhl <aliceryhl@google.com>
Cc: Trevor Gross <tmgross@umich.edu>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Daniel Almeida <daniel.almeida@collabora.com>
Cc: Tamir Duberstein <tamird@kernel.org>
Cc: Alexandre Courbot <acourbot@nvidia.com>
Cc: Onur Özkan <work@onurozkan.dev>
Cc: nsc@kernel.org
Cc: nathan@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 V2:
https://lore.kernel.org/lkml/20260714083709.69517-1-litvindev@gmail.com/
as suggested by Miguel Ojeda here:
https://lore.kernel.org/lkml/CANiq72k0RbkWk=8hiNzHUmFWr=6OA2DBHAUew4OfZb_Umb=6hA@mail.gmail.com/
- Remove "Cc: stable@vger.kernel.org" tag, because this commit introduces a new
feature.
---
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] 9+ messages in thread
* [PATCH v4] scripts/tags.sh: Add support for rust source files
2026-07-14 12:24 ` [PATCH v3] " Sergei Litvin
@ 2026-07-14 12:52 ` Sergei Litvin
0 siblings, 0 replies; 9+ messages in thread
From: Sergei Litvin @ 2026-07-14 12:52 UTC (permalink / raw)
To: miguel.ojeda.sandonis
Cc: rust-for-linux, linux-kernel, linux-kbuild, Sergei Litvin,
Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron,
Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
Danilo Krummrich, Daniel Almeida, Tamir Duberstein,
Alexandre Courbot, Onur Özkan, nsc, nathan
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: Miguel Ojeda <ojeda@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Gary Guo <gary@garyguo.net>
Cc: Björn Roy Baron <bjorn3_gh@protonmail.com>
Cc: Benno Lossin <lossin@kernel.org>
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Alice Ryhl <aliceryhl@google.com>
Cc: Trevor Gross <tmgross@umich.edu>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Daniel Almeida <daniel.almeida@collabora.com>
Cc: Tamir Duberstein <tamird@kernel.org>
Cc: Alexandre Courbot <acourbot@nvidia.com>
Cc: Onur Özkan <work@onurozkan.dev>
Cc: nsc@kernel.org
Cc: nathan@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 V3:
https://lore.kernel.org/lkml/20260714122441.78158-1-litvindev@gmail.com/
- Fixed list of "Cc:" tags
Changes since V2:
https://lore.kernel.org/lkml/20260714083709.69517-1-litvindev@gmail.com/
as suggested by Miguel Ojeda here:
https://lore.kernel.org/lkml/CANiq72k0RbkWk=8hiNzHUmFWr=6OA2DBHAUew4OfZb_Umb=6hA@mail.gmail.com/
- Remove "Cc: stable@vger.kernel.org" tag, because this commit introduces a new
feature.
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] 9+ messages in thread
* Re: [PATCH v2] scripts/tags.sh: Prevent binary files appearing in cscope.files
2026-07-14 8:33 ` [PATCH v2] " Sergei Litvin
@ 2026-07-14 14:00 ` Nicolas Schier
0 siblings, 0 replies; 9+ 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] 9+ messages in thread
end of thread, other threads:[~2026-07-14 14:00 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <https://lore.kernel.org/lkml/akVkIrcpNxZrrfii@levanger/>
2026-07-05 17:59 ` [PATCH] scripts/tags.sh: Prevent binary files appearing in cscope.files Sergei Litvin
2026-07-05 18:05 ` Miguel Ojeda
2026-07-14 8:33 ` [PATCH v2] " Sergei Litvin
2026-07-14 14:00 ` 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
2026-07-14 12:24 ` [PATCH v3] " Sergei Litvin
2026-07-14 12:52 ` [PATCH v4] " Sergei Litvin
2026-07-05 17:59 ` [PATCH] " Sergei Litvin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox