Skip to content

Commit 70927dc

Browse files
committed
s390: disable -Warray-bounds
Bugzilla: https://bugzilla.redhat.com/2159468 commit 8b202ee Author: Sven Schnelle <svens@linux.ibm.com> Date: Mon Apr 25 14:17:42 2022 +0200 s390: disable -Warray-bounds 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: Eric Chanudet <echanude@redhat.com>
1 parent 4f2ee3b commit 70927dc

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

arch/s390/Makefile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,16 @@ KBUILD_CFLAGS_DECOMPRESSOR += -fno-stack-protector
3232
KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-member)
3333
KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g)
3434
KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,))
35+
36+
ifdef CONFIG_CC_IS_GCC
37+
ifeq ($(call cc-ifversion, -ge, 1200, y), y)
38+
ifeq ($(call cc-ifversion, -lt, 1300, y), y)
39+
KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
40+
KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, array-bounds)
41+
endif
42+
endif
43+
endif
44+
3545
UTS_MACHINE := s390x
3646
STACK_SIZE := $(if $(CONFIG_KASAN),65536,16384)
3747
CHECKFLAGS += -D__s390__ -D__s390x__

0 commit comments

Comments
 (0)