lkml.org 
[lkml]   [2019]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 38/52] x86/build: Add -Wnoaddress-of-packed-member to REALMODE_CFLAGS, to silence GCC9 build warning
    Date
    From: Linus Torvalds <torvalds@linux-foundation.org>

    [ Upstream commit 42e0e95474fc6076b5cd68cab8fa0340a1797a72 ]

    One of the very few warnings I have in the current build comes from
    arch/x86/boot/edd.c, where I get the following with a gcc9 build:

    arch/x86/boot/edd.c: In function ‘query_edd’:
    arch/x86/boot/edd.c:148:11: warning: taking address of packed member of ‘struct boot_params’ may result in an unaligned pointer value [-Waddress-of-packed-member]
    148 | mbrptr = boot_params.edd_mbr_sig_buffer;
    | ^~~~~~~~~~~

    This warning triggers because we throw away all the CFLAGS and then make
    a new set for REALMODE_CFLAGS, so the -Wno-address-of-packed-member we
    added in the following commit is not present:

    6f303d60534c ("gcc-9: silence 'address-of-packed-member' warning")

    The simplest solution for now is to adjust the warning for this version
    of CFLAGS as well, but it would definitely make sense to examine whether
    REALMODE_CFLAGS could be derived from CFLAGS, so that it picks up changes
    in the compiler flags environment automatically.

    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Acked-by: Borislav Petkov <bp@alien8.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/x86/Makefile | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/arch/x86/Makefile b/arch/x86/Makefile
    index ce0d0424a53d6..4833dd7e2cc03 100644
    --- a/arch/x86/Makefile
    +++ b/arch/x86/Makefile
    @@ -38,6 +38,7 @@ REALMODE_CFLAGS := $(M16_CFLAGS) -g -Os -DDISABLE_BRANCH_PROFILING \

    REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -ffreestanding)
    REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -fno-stack-protector)
    +REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -Wno-address-of-packed-member)
    REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), $(cc_stack_align4))
    export REALMODE_CFLAGS

    --
    2.20.1
    \
     
     \ /
      Last update: 2019-09-04 18:10    [W:4.327 / U:0.684 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site