2018-03-01 4:17 GMT+09:00 Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>: > kconfig.h was excluded from consideration by fixdep by > 6a5be57f0f00 (fixdep: fix extraneous dependencies) to avoid some false > positive hits > > (1) include/config/.h > (2) include/config/h.h > (3) include/config/foo.h > > (1) occurred because kconfig.h contains the string CONFIG_ in a > comment. However, since dee81e988674 (fixdep: faster CONFIG_ search), we > have a check that the part after CONFIG_ is non-empty, so this does not > happen anymore (and CONFIG_ appears by itself elsewhere, so that check > is worthwhile). > > (2) comes from the include guard, __LINUX_KCONFIG_H. But with the > previous patch, we no longer match that either. > > That leaves (3), which amounts to one [1] false dependency (aka stat() call > done by make), which I think we can live with: > > We've already had one case [2] where the lack of include/linux/kconfig.h in > the .o.cmd file caused a missing rebuild, and while I originally thought > we should just put kconfig.h in the dependency list without parsing it > for the CONFIG_ pattern, we actually do have some real CONFIG_ symbols > mentioned in it, and one can imagine some translation unit that just > does '#ifdef __BIG_ENDIAN' but doesn't through some other header > actually depend on CONFIG_CPU_BIG_ENDIAN - so changing the target > endianness could end up rebuilding the world, minus that small > TU. Quoting Linus, > > ... when missing dependencies cause a missed re-compile, the resulting > bugs can be _really_ subtle. > > [1] well, two, we now also have CONFIG_BOOGER/booger.h - we could change > that to FOO if we care > > [2] https://lkml.org/lkml/2018/2/22/838 > > Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> > --- > scripts/basic/fixdep.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c > index 1b21870d6e7f..449b68c4c90c 100644 > --- a/scripts/basic/fixdep.c > +++ b/scripts/basic/fixdep.c > @@ -283,7 +283,6 @@ static int is_ignored_file(const char *s, int len) > { > return str_ends_with(s, len, "include/generated/autoconf.h") || > str_ends_with(s, len, "include/generated/autoksyms.h") || > - str_ends_with(s, len, "include/linux/kconfig.h") || > str_ends_with(s, len, ".ver"); > } > > -- > 2.15.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html The series, applied to linux-kbuild/fixes. Thanks! -- Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html