[PATCH v2] scripts: Have make TAGS not include structure members

From: Steven Rostedt

Date: Wed May 27 2026 - 12:11:56 EST


From: Steven Rostedt <rostedt@xxxxxxxxxxx>

It is really annoying when I use emacs TAGS to search for something
like "dev_name" and have to go through 12 iterations before I find the
function "dev_name". I really do not care about structures that include
"dev_name" as one of its fields, and I'm sure pretty much all other
developers do not care either.

There's a "remove_structs" variable used by the scripts/tags.sh, which
I'm guessing is suppose to remove these structures from the TAGS file,
but it must do a poor job at it, as I'm always hitting structures when
I want the actual declaration.

Luckily, the etags program comes with an option "--no-members", which does
exactly what I want, and I'm sure all other kernel developers want too.

Create a new "no_members" variable and assign it to "--no-members" for the
"TAGS" case and pass that to the etags program to remove structures.

Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
---
Changes since v1: https://lore.kernel.org/all/20131115093645.6dc03918@xxxxxxxxxxxxxxxxxx/

- Use a no_members variable instead of hard coding the --no-members into
the etags call, as that can break some "tags" cases. (Michal Marek)

- Rebase to the current decade. Yes, v1 is from 2013. I've been carrying
this patch in my personal repos as a quilt entry where I would just push
it when doing a "make TAGS". I also have the conversation still in my
INBOX to remind me to send a v2. Talk about procrastination! It only
took me 13 years to send the v2 :-p

I'm still keeping the same Cc's. I wonder how many of them will be
broken. :-/

scripts/tags.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/scripts/tags.sh b/scripts/tags.sh
index 243373683f98..018588014eed 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -305,7 +305,7 @@ exuberant()
emacs()
{
setup_regex emacs asm c
- all_target_sources | xargs $1 -a "${regex[@]}"
+ all_target_sources | xargs $1 -a $no_members "${regex[@]}"

setup_regex emacs kconfig
all_kconfigs | xargs $1 -a "${regex[@]}"
@@ -334,6 +334,7 @@ if [ "${ARCH}" = "um" ]; then
fi

remove_structs=
+no_members=
case "$1" in
"cscope")
docscope
@@ -353,6 +354,7 @@ case "$1" in
rm -f TAGS
xtags etags
remove_structs=y
+ no_members=--no-members
;;
esac

--
2.53.0