Re: v3.18.86 build: 0 failures 1 warnings (v3.18.86)

From: Arnd Bergmann
Date: Wed Jan 03 2018 - 09:52:19 EST


On Wed, Jan 3, 2018 at 10:57 AM, Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> On Wed, Jan 03, 2018 at 10:54:16AM +0100, Greg KH wrote:
>> On Wed, Jan 03, 2018 at 12:24:12AM +0100, Arnd Bergmann wrote:
>> > On Wed, Dec 6, 2017 at 1:18 AM, Build bot for Mark Brown
>> > <broonie@xxxxxxxxxx> wrote:
>> >
>> > > -------------------------------------------------------------------------------
>> > > x86_64-defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
>> > >
>> > > Warnings:
>> > > ../include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
>> > > ../include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
>> > > -------------------------------------------------------------------------------
>> >
>> > This warning keeps coming up in 3.18 and 4.1 builds, which lack a backport of
>> >
>> > ef6000b4c670 ("Disable the __builtin_return_address() warning globally
>> > after all")
>> >
>> > The other build bots use different gcc versions that don't report the
>> > warning here,
>> > so only Mark's bot triggers it. The warning in this file is harmless,
>> > and the patch
>> > only turns off the warning flag.
>>
>> Ah, I tried to figure this one out in the past, thanks for this, I'll
>> queue it up soon. Hm, this isn't in 4.4.y, why is it not showing up
>> there? Due to a different backport of this type of thing?
>
> Nope, doesn't apply to 3.18 at all, as the main part of this patch is
> already in there. I don't really understand it, it seems that the
> cc-disable-warning option isn't working for me for 3.18 at all in my
> local builds. I spent a few hours on it last week, but gave up in the
> end :(

Right, this is more mysterious than I thought. I see now that the original
patch 124a3d88fa20 ("Disable "frame-address" warning") was backported
into 3.18, just not the revert 377ccbb48373 ("Makefile: Mute warning for
__builtin_return_address(>0) for tracing only") and the subsequent
revert^2 ef6000b4c670 ("Disable the __builtin_return_address() warning
globally after all").

I have checked that on my build box, the warning is successfully
disabled with gcc-6 and higher (tried 6.1.1, 6.3.1, 7.0.0, 7.1.1)
and older compilers have neither the warning nor the option
to disable it.
I also tried reproducing the warning on arm and aarch64 with some
other modifications but I get a different warning there:

kernel/sched/core.c: In function 'preempt_count_sub':
include/linux/ftrace.h:632:36: warning: unsupported argument to
'__builtin_return_address'

Greg and Mark, which x86-64 compiler versions do you use?

Arnd