* [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; 12+ 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] 12+ 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; 12+ 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] 12+ 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; 12+ 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] 12+ 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 2026-07-14 14:09 ` Miguel Ojeda 0 siblings, 1 reply; 12+ 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] 12+ 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; 12+ 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] 12+ 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; 12+ 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] 12+ 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; 12+ 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] 12+ 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; 12+ 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] 12+ 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 2026-07-14 14:10 ` Nicolas Schier 2026-07-14 14:16 ` Miguel Ojeda 0 siblings, 2 replies; 12+ 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] 12+ messages in thread
* Re: [PATCH v4] scripts/tags.sh: Add support for rust source files 2026-07-14 12:52 ` [PATCH v4] " Sergei Litvin @ 2026-07-14 14:10 ` Nicolas Schier 2026-07-14 14:16 ` Miguel Ojeda 1 sibling, 0 replies; 12+ messages in thread From: Nicolas Schier @ 2026-07-14 14:10 UTC (permalink / raw) To: Sergei Litvin Cc: miguel.ojeda.sandonis, rust-for-linux, linux-kernel, linux-kbuild, 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, nathan On Tue, Jul 14, 2026 at 02:52:59PM +0200, Sergei Litvin wrote: > 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(-) > Tested-by: Nicolas Schier <n.schier@fritz.com> Reviewed-by: Nicolas Schier <n.schier@fritz.com> -- Nicolas ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4] scripts/tags.sh: Add support for rust source files 2026-07-14 12:52 ` [PATCH v4] " Sergei Litvin 2026-07-14 14:10 ` Nicolas Schier @ 2026-07-14 14:16 ` Miguel Ojeda 1 sibling, 0 replies; 12+ messages in thread From: Miguel Ojeda @ 2026-07-14 14:16 UTC (permalink / raw) To: Sergei Litvin Cc: rust-for-linux, linux-kernel, linux-kbuild, 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 On Tue, Jul 14, 2026 at 3:01 PM Sergei Litvin <litvindev@gmail.com> wrote: > > - Fixed list of "Cc:" tags Just to clarify, I meant to Cc in the header, rather than add everyone as an explicit Cc tag -- the Cc: tag is (usually) meant to be a more explicit Cc to indicate in the commit message that the particular person had a chance to comment etc. [ Some people do use it for every single Cc, but that is a minority last time I took a look at it. I think it may make things easier for some tooling, but it adds a lot of noise and reduces the signal of the tag. ] In any case, no need for a new version to change that! :) Thanks! Cheers, Miguel ^ permalink raw reply [flat|nested] 12+ 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; 12+ 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] 12+ messages in thread
end of thread, other threads:[~2026-07-14 14:17 UTC | newest]
Thread overview: 12+ 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 14:09 ` Miguel Ojeda
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-14 14:10 ` Nicolas Schier
2026-07-14 14:16 ` Miguel Ojeda
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