Message ID | 20180216214117.1947175-2-arnd@arndb.de |
---|---|
State | New |
Headers | show |
Series | fixing the last failures in randconfig builds | expand |
On Fri, 16 Feb 2018 22:41:11 +0100 Arnd Bergmann <arnd@arndb.de> wrote: > This can easily double the time for compiling a driver but does not > provide any benefit for the compile tester, so it's better left disabled. > > In addition, any 'inline' function that is not also 'static' and that > contains an 'if' causes a warning like > > include/linux/string.h:212:2: note: in expansion of macro 'if' > if (strscpy(p, q, p_size < q_size ? p_size : q_size) < 0) > ^~ > include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'strcpy' which is not static > > without this patch, and I could not come up with a nice fix for that. > In combination with my patch to always enable 'CONFIG_COMPILE_TEST' > during 'randconfig' builds, we can at least hide these warnings for > most users. This looks like it fixes the same issue that was already fixed and is in Linus's tree. http://lkml.kernel.org/r/9199446b-a141-c0c3-9678-a3f9107f2750@infradead.org See commit 68e76e034b6b1 ("tracing: Prevent PROFILE_ALL_BRANCHES when FORTIFY_SOURCE=y") -- Steve
On Fri, 16 Feb 2018 23:40:22 +0100 Arnd Bergmann <arnd@arndb.de> wrote: > ((CAPI_MSG *) msg)->info.facility_req.structs[1] = > LI_REQ_SILENT_UPDATE & 0xff; > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > drivers/isdn/hardware/eicon/message.c:11163:54: error: array subscript > is above array bounds [-Werror=array-bounds] > ((CAPI_MSG *) msg)->info.facility_req.structs[2] = > LI_REQ_SILENT_UPDATE >> 8; > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ > drivers/isdn/hardware/eicon/message.c:11164:54: error: array subscript > is above array bounds [-Werror=array-bounds] > ((CAPI_MSG *) msg)->info.facility_req.structs[3] = 0; > > All those are nonsense AFAICT, and we see them only because the "if()" override > ends up confusing gcc's value-range tracking in the same way it used to cause > lots of -Wmaybe-uninitialized warnings (which we just disable these days > with PROFILE_ALL_BRANCHES). I'm fine with your patch then. -- Steve
2018-02-17 6:41 GMT+09:00 Arnd Bergmann <arnd@arndb.de>: > This can easily double the time for compiling a driver but does not > provide any benefit for the compile tester, so it's better left disabled. > > In addition, any 'inline' function that is not also 'static' and that > contains an 'if' causes a warning like > > include/linux/string.h:212:2: note: in expansion of macro 'if' > if (strscpy(p, q, p_size < q_size ? p_size : q_size) < 0) > ^~ > include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'strcpy' which is not static > > without this patch, and I could not come up with a nice fix for that. > In combination with my patch to always enable 'CONFIG_COMPILE_TEST' > during 'randconfig' builds, we can at least hide these warnings for > most users. > > Cc: Steven Rostedt <rostedt@goodmis.org> > Signed-off-by: Arnd Bergmann <arnd@arndb.de> I took a look at this just in case because the subject is prefixed with "Kconfig:", but it is actually "trace:". I expect "Kconfig:" for core changes of Kconfig. Using precise patch prefix would get more attention from right people. > --- > kernel/trace/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig > index 434c840e2d82..faaf687b13b1 100644 > --- a/kernel/trace/Kconfig > +++ b/kernel/trace/Kconfig > @@ -345,6 +345,7 @@ config PROFILE_ANNOTATED_BRANCHES > config PROFILE_ALL_BRANCHES > bool "Profile all if conditionals" > select TRACE_BRANCH_PROFILING > + depends on !COMPILE_TEST > help > This tracer profiles all branch conditions. Every if () > taken in the kernel is recorded whether it hit or miss. > -- > 2.9.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Best Regards Masahiro Yamada
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 434c840e2d82..faaf687b13b1 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig @@ -345,6 +345,7 @@ config PROFILE_ANNOTATED_BRANCHES config PROFILE_ALL_BRANCHES bool "Profile all if conditionals" select TRACE_BRANCH_PROFILING + depends on !COMPILE_TEST help This tracer profiles all branch conditions. Every if () taken in the kernel is recorded whether it hit or miss.
This can easily double the time for compiling a driver but does not provide any benefit for the compile tester, so it's better left disabled. In addition, any 'inline' function that is not also 'static' and that contains an 'if' causes a warning like include/linux/string.h:212:2: note: in expansion of macro 'if' if (strscpy(p, q, p_size < q_size ? p_size : q_size) < 0) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'strcpy' which is not static without this patch, and I could not come up with a nice fix for that. In combination with my patch to always enable 'CONFIG_COMPILE_TEST' during 'randconfig' builds, we can at least hide these warnings for most users. Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- kernel/trace/Kconfig | 1 + 1 file changed, 1 insertion(+) -- 2.9.0