Commit 9b24a15d authored by Yann Droneaud's avatar Yann Droneaud Committed by Michal Marek

scripts/tags.sh: ignore symlink'ed source files

Since commit 22d651dc ('selftests/powerpc:
Import Anton's memcpy / copy_tofrom_user tests'), some source files in the
tree appear as symlink.
Until commit 8c38a532 ('scripts/tags.sh:
ignore code of user space tools'), those symlinks made cscope report some
warnings:

    $ make ALLSOURCE_ARCHS=all O=./obj-cscope/ cscope
      GEN     cscope
    cscope: cannot find
file .../tools/testing/selftests/powerpc/copyloops/copyuser_power7.S
    cscope: cannot find
file .../tools/testing/selftests/powerpc/copyloops/memcpy_64.S
    cscope: cannot find
file .../tools/testing/selftests/powerpc/copyloops/memcpy_power7.S
    cscope: cannot find
file .../tools/testing/selftests/powerpc/copyloops/copyuser_64.S

In order to prevent the same kind of warnings to be triggered by future
addition of symlinks, the best option is to ignore all symlinks when
building the file list to be processed by cscope (and other tools
supported by scripts/tags.sh).

Ignoring symlinks won't hide source files from cscope (and others) as the
target of these symlinks already appear somewhere else in the tree, and,
as such, should be processed by cscope (or others).

Note that, cscope, when used with -R option to make it find the files to
process by itself, already skip symlinks: it's not expected that cscope
access source files through symlink.

On top of commit 8c38a532 ('scripts/tags.sh:
ignore code of user space tools'), scripts/tags.sh output from
"make cscope tags TAGS" is the same with and without this patch: it doesn't
seems to introduce any regression (on Fedora 20).

Link: http://lkml.kernel.org/r/1396530975.4361.28.camel@localhost.localdomain
Link: http://mid.gmane.org/534312F8.5090609@t-online.de
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Anton Blanchard <anton@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Hans-Bernhard Bröker <broeker@users.sourceforge.net>,
Cc: Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>,
Cc: Neil Horman <nhorman@users.sourceforge.net>
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: Gerhard Sittig <gsi@denx.de>
Cc: Konstantin Khlebnikov <koct9i@gmail.com>
Signed-off-by: default avatarYann Droneaud <ydroneaud@opteya.com>
Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
parent 79c704a8
...@@ -50,7 +50,8 @@ find_arch_sources() ...@@ -50,7 +50,8 @@ find_arch_sources()
for i in $archincludedir; do for i in $archincludedir; do
prune="$prune -wholename $i -prune -o" prune="$prune -wholename $i -prune -o"
done done
find ${tree}arch/$1 $ignore $subarchprune $prune -name "$2" -print; find ${tree}arch/$1 $ignore $subarchprune $prune -name "$2" \
-not -type l -print;
} }
# find sources in arch/$1/include # find sources in arch/$1/include
...@@ -60,14 +61,15 @@ find_arch_include_sources() ...@@ -60,14 +61,15 @@ find_arch_include_sources()
-name include -type d -print); -name include -type d -print);
if [ -n "$include" ]; then if [ -n "$include" ]; then
archincludedir="$archincludedir $include" archincludedir="$archincludedir $include"
find $include $ignore -name "$2" -print; find $include $ignore -name "$2" -not -type l -print;
fi fi
} }
# find sources in include/ # find sources in include/
find_include_sources() find_include_sources()
{ {
find ${tree}include $ignore -name config -prune -o -name "$1" -print; find ${tree}include $ignore -name config -prune -o -name "$1" \
-not -type l -print;
} }
# find sources in rest of tree # find sources in rest of tree
...@@ -76,7 +78,7 @@ find_other_sources() ...@@ -76,7 +78,7 @@ find_other_sources()
{ {
find ${tree}* $ignore \ find ${tree}* $ignore \
\( -name include -o -name arch -o -name '.tmp_*' \) -prune -o \ \( -name include -o -name arch -o -name '.tmp_*' \) -prune -o \
-name "$1" -print; -name "$1" -not -type l -print;
} }
find_sources() find_sources()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment