Re: [PATCH] tracing: prevent PROFILE_ALL_BRANCHES when FORTIFY_SOURCE=y

From: Randy Dunlap
Date: Mon Jan 15 2018 - 14:12:54 EST


On 01/15/2018 11:10 AM, Steven Rostedt wrote:
> On Mon, 15 Jan 2018 11:07:27 -0800
> Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>
>> From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>
>> I regularly get 50 MB - 60 MB files during kernel randconfig builds.
>> These large files mostly contain (many repeats of; e.g., 124,594):
>>
>> In file included from ../include/linux/string.h:6:0,
>> from ../include/linux/uuid.h:20,
>> from ../include/linux/mod_devicetable.h:13,
>> from ../scripts/mod/devicetable-offsets.c:3:
>> ../include/linux/compiler.h:64:4: warning: '______f' is static but declared in inline function 'strcpy' which is not static [enabled by default]
>> ______f = { \
>> ^
>> ../include/linux/compiler.h:56:23: note: in expansion of macro '__trace_if'
>> ^
>> ../include/linux/string.h:425:2: note: in expansion of macro 'if'
>> if (p_size == (size_t)-1 && q_size == (size_t)-1)
>> ^
>>
>> This only happens when CONFIG_FORTIFY_SOURCE=y and
>> CONFIG_PROFILE_ALL_BRANCHES=y, so prevent PROFILE_ALL_BRANCHES if
>> FORTIFY_SOURCE=y.
>>
>> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>> Acked-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
>
> I'm actually working on a patch that I need to send to Linus before
> 4.15 is released. Want me to add this one too? Or do you have your own
> branch to push to mainline with?

I don't have any branch to push. Please merge it whenever you think it's
appropriate.

Thanks.

> -- Steve
>
>> ---
>> kernel/trace/Kconfig | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> --- orig/kernel/trace/Kconfig
>> +++ next/kernel/trace/Kconfig
>> @@ -355,7 +355,7 @@ config PROFILE_ANNOTATED_BRANCHES
>> on if you need to profile the system's use of these macros.
>>
>> config PROFILE_ALL_BRANCHES
>> - bool "Profile all if conditionals"
>> + bool "Profile all if conditionals" if !FORTIFY_SOURCE
>> select TRACE_BRANCH_PROFILING
>> help
>> This tracer profiles all branch conditions. Every if ()
>


--
~Randy