lkml.org 
[lkml]   [2022]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 35/66] s390: disable -Warray-bounds
    Date
    From: Sven Schnelle <svens@linux.ibm.com>

    [ Upstream commit 8b202ee218395319aec1ef44f72043e1fbaccdd6 ]

    gcc-12 shows a lot of array bound warnings on s390. This is caused
    by the S390_lowcore macro which uses a hardcoded address of 0.

    Wrapping that with absolute_pointer() works, but gcc no longer knows
    that a 12 bit displacement is sufficient to access lowcore. So it
    emits instructions like 'lghi %r1,0; l %rx,xxx(%r1)' instead of a
    single load/store instruction. As s390 stores variables often
    read/written in lowcore, this is considered problematic. Therefore
    disable -Warray-bounds on s390 for gcc-12 for the time being, until
    there is a better solution.

    Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
    Link: https://lore.kernel.org/r/yt9dzgkelelc.fsf@linux.ibm.com
    Link: https://lore.kernel.org/r/20220422134308.1613610-1-svens@linux.ibm.com
    Link: https://lore.kernel.org/r/20220425121742.3222133-1-svens@linux.ibm.com
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/s390/Makefile | 10 ++++++++++
    1 file changed, 10 insertions(+)

    diff --git a/arch/s390/Makefile b/arch/s390/Makefile
    index 92506918da63..a8cb00f30a7c 100644
    --- a/arch/s390/Makefile
    +++ b/arch/s390/Makefile
    @@ -32,6 +32,16 @@ KBUILD_CFLAGS_DECOMPRESSOR += -fno-stack-protector
    KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-member)
    KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g)
    KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,))
    +
    +ifdef CONFIG_CC_IS_GCC
    + ifeq ($(call cc-ifversion, -ge, 1200, y), y)
    + ifeq ($(call cc-ifversion, -lt, 1300, y), y)
    + KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
    + KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, array-bounds)
    + endif
    + endif
    +endif
    +
    UTS_MACHINE := s390x
    STACK_SIZE := $(if $(CONFIG_KASAN),65536,16384)
    CHECKFLAGS += -D__s390__ -D__s390x__
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-05-16 22:09    [W:4.149 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site