Makefile: Skip symbolic links to files for cscope
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 8 Oct 2019 18:12:45 +0000 (21:12 +0300)
committerTom Rini <trini@konsulko.com>
Wed, 16 Oct 2019 22:09:26 +0000 (18:09 -0400)
cscope complains that it can't find files that appears to be symbolic links

cscope: cannot find file tools/binman/test/u_boot_binman_syms_bad.c
cscope: cannot find file tools/version.h

`find -L` tests properties, but name, and cscope can't cope with symbolic
links (a lot of bugs in upstream were simple closed as kinda invalid).

To work around the problem, exclude symbolic links from the cscope.files.
Note, it's done in two pass to speed up the process (`-exec realpath ...`
approach is not portable and introduces a 3x delay).

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Makefile

index 6fda326..c583e40 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1808,6 +1808,9 @@ etags:
 cscope:
                $(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) -name '*.[chS]' -print > \
                                                cscope.files
+               @find $(TAG_SUBDIRS) -name '*.[chS]' -type l -print | \
+                       grep -xvf - cscope.files > cscope.files.no-symlinks; \
+               mv cscope.files.no-symlinks cscope.files
                cscope -b -q -k
 
 SYSTEM_MAP = \