diff mbox series

[1/3] Kconfig: disable PROFILE_ALL_BRANCHES for compile testing

Message ID 20180216214117.1947175-2-arnd@arndb.de
State New
Headers show
Series fixing the last failures in randconfig builds | expand

Commit Message

Arnd Bergmann Feb. 16, 2018, 9:41 p.m. UTC
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

Comments

Steven Rostedt Feb. 16, 2018, 10:03 p.m. UTC | #1
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
Steven Rostedt Feb. 16, 2018, 10:50 p.m. UTC | #2
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
Masahiro Yamada Feb. 20, 2018, 9:32 a.m. UTC | #3
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 mbox series

Patch

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.