On Tue, Feb 23, 2021 at 5:20 PM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Tue, Feb 23, 2021 at 10:14 AM Rob Herring <robh@xxxxxxxxxx> wrote: > > > > Any non-phony targets need to be in gitignore. The normal way to check > > this is doing an in-tree build and running git-status which is easy to > > miss. Git provides an easy way to check whether a file is ignored with > > git-check-ignore. Let's add a build time check using it. > > This looks ridiculously expensive with a shell and git invocation for > every single target just for this check. I was a bit worried too initially, but casually didn't notice any difference so I didn't do any measurements. Now I have, and it looks like it adds about 2 sec on a rebuild with no changes. I probably can rework it to a single shell and git call per invocation of Makefile.lib. What I really need is git-check-ignore to take '-n' without '-v', but grep can solve that. Here's the raw data: clean x86 defconfig: 1805.08user 165.87system 5:05.15elapsed 645%CPU (0avgtext+0avgdata 260180maxresident)k 110536inputs+1390704outputs (11major+52491225minor)pagefaults 0swaps rebuild with no changes: 12.61user 3.56system 0:04.32elapsed 374%CPU (0avgtext+0avgdata 38876maxresident)k 0inputs+1984outputs (0major+755708minor)pagefaults 0swaps adding this commit and rebuild: 14.90user 4.80system 0:06.50elapsed 303%CPU (0avgtext+0avgdata 39160maxresident)k 80inputs+1992outputs (0major+1402830minor)pagefaults 0swaps clean x86 defconfig with this commit: 1799.10user 165.84system 5:06.19elapsed 641%CPU (0avgtext+0avgdata 259932maxresident)k 8inputs+1390712outputs (0major+53146757minor)pagefaults 0swaps another rebuild with this commit: 14.55user 4.85system 0:06.14elapsed 315%CPU (0avgtext+0avgdata 38664maxresident)k 0inputs+1992outputs (0major+1402878minor)pagefaults 0swaps Rob