Re: Warnings whilst building 5.2.0+

From: Chris Clayton
Date: Tue Jul 09 2019 - 07:39:43 EST




On 09/07/2019 11:37, Enrico Weigelt, metux IT consult wrote:
> On 09.07.19 08:06, Chris Clayton wrote:
>
> Hi,
>
>> I've pulled Linus' tree this morning and, after running 'make oldconfig', tried a build. During that build I got the
>> following warnings, which look to me like they should be fixed. 'git describe' shows v5.2-915-g5ad18b2e60b7 and my
>> compiler is the 20190706 snapshot of gcc 9.
>
> Thanks for the report. I'm rebuilding right know anyways, so I'll look
> out for it.

Thanks for the reply.

>> In file included from arch/x86/kernel/head64.c:35:
>> In function 'sanitize_boot_params',
>> inlined from 'copy_bootdata' at arch/x86/kernel/head64.c:391:2:
>> ./arch/x86/include/asm/bootparam_utils.h:40:3: warning: 'memset' offset [197, 448] from the object at 'boot_params' is
>> out of the bounds of referenced subobject 'ext_ramdisk_image' with type 'unsigned int' at offset 192 [-Warray-bounds]
>> 40 | memset(&boot_params->ext_ramdisk_image, 0,
>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 41 | (char *)&boot_params->efi_info -
>> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 42 | (char *)&boot_params->ext_ramdisk_image);
>> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> ./arch/x86/include/asm/bootparam_utils.h:43:3: warning: 'memset' offset [493, 497] from the object at 'boot_params' is
>> out of the bounds of referenced subobject 'kbd_status' with type 'unsigned char' at offset 491 [-Warray-bounds]
>> 43 | memset(&boot_params->kbd_status, 0,
>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 44 | (char *)&boot_params->hdr -
>> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 45 | (char *)&boot_params->kbd_status);
>> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Can you check older versions, too ? Maybe also trying older gcc ?
>

I see the same warnings building linux-5.2.0 with gcc9. However, I don't see the warnings building linux-5.2.0 with the
the 20190705 of gcc8. So the warnings could result from an improvement (i.e. the problem was in the kernel, but
undiscovered by gcc8) or from a regression in gcc9.

>
> --mtx
>