[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNAQ9WKj5Uz=A2QKctM9H8WFErfo_J_rGSn7B5jig+4gv_w@mail.gmail.com>
Date: Mon, 5 Mar 2018 13:52:06 +0900
From: Masahiro Yamada <yamada.masahiro@...ionext.com>
To: Rasmus Villemoes <linux@...musvillemoes.dk>
Cc: Michal Marek <michal.lkml@...kovi.net>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Linux Kbuild mailing list <linux-kbuild@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 3/3] fixdep: do not ignore kconfig.h
2018-03-01 4:17 GMT+09:00 Rasmus Villemoes <linux@...musvillemoes.dk>:
> 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@...ux-foundation.org>
> Signed-off-by: Rasmus Villemoes <linux@...musvillemoes.dk>
Sorry, I missed to include this series in the Kbuild fixes PR
I sent two days ago.
I was not tracking the randomize-struct thread.
I read [2] and I noticed the background of this series just now.
Hopefully, I will have another opportunity of PR
if this series is necessary for v4.16 (seems so)
Regardless of the randomize-struct issue, this series is great!
> ---
> 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@...r.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Best Regards
Masahiro Yamada
Powered by blists - more mailing lists