76 lines
3.1 KiB
Diff
76 lines
3.1 KiB
Diff
|
From c5b348e6d0334333295332c55fc4be51ce2668b8 Mon Sep 17 00:00:00 2001
|
|||
|
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>
|
|||
|
Date: Thu, 22 Apr 2021 16:59:11 +0200
|
|||
|
Subject: [PATCH 33/39] pc-bios/s390-ccw: Silence GCC 11 stringop-overflow
|
|||
|
warning
|
|||
|
MIME-Version: 1.0
|
|||
|
Content-Type: text/plain; charset=UTF-8
|
|||
|
Content-Transfer-Encoding: 8bit
|
|||
|
|
|||
|
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
|||
|
RH-MergeRequest: 24: v7: Add support for building qemu-kvm with clang and safe-stack
|
|||
|
RH-Commit: [6/11] 92851a154f2425363aa1f5ed2bb12740f589229e (jmaloy/qemu-kvm-centos-jon)
|
|||
|
RH-Bugzilla: 1939509 1940132
|
|||
|
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
|
|||
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|||
|
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
|||
|
|
|||
|
When building on Fedora 34 (gcc version 11.0.0 20210210) we get:
|
|||
|
|
|||
|
In file included from pc-bios/s390-ccw/main.c:11:
|
|||
|
In function ‘memset’,
|
|||
|
inlined from ‘boot_setup’ at pc-bios/s390-ccw/main.c:185:5,
|
|||
|
inlined from ‘main’ at pc-bios/s390-ccw/main.c:288:5:
|
|||
|
pc-bios/s390-ccw/libc.h:28:14: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
|
|||
|
28 | p[i] = c;
|
|||
|
| ~~~~~^~~
|
|||
|
|
|||
|
The offending code is:
|
|||
|
|
|||
|
memset((char *)S390EP, 0, 6);
|
|||
|
|
|||
|
where S390EP is a const address:
|
|||
|
|
|||
|
#define S390EP 0x10008
|
|||
|
|
|||
|
The compiler doesn't know how big that pointed area is, so it assume that
|
|||
|
its length is zero. This has been reported as BZ#99578 to GCC:
|
|||
|
"gcc-11 -Warray-bounds or -Wstringop-overread warning when accessing a
|
|||
|
pointer from integer literal"
|
|||
|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578
|
|||
|
|
|||
|
As this warning does us more harm than good in the BIOS code (where
|
|||
|
lot of direct accesses to low memory are done), silence this warning
|
|||
|
for all BIOS objects.
|
|||
|
|
|||
|
Suggested-by: Thomas Huth <thuth@redhat.com>
|
|||
|
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
|||
|
Message-Id: <20210422145911.2513980-1-philmd@redhat.com>
|
|||
|
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
|
|||
|
Message-Id: <20210502174836.838816-4-thuth@redhat.com>
|
|||
|
[thuth: Use the pre-existing cc-option macro instead of adding a new one]
|
|||
|
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
|||
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|||
|
(cherry picked from commit da231910d33084ccf63f07de210b145e0fa31d98)
|
|||
|
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
|||
|
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|||
|
---
|
|||
|
pc-bios/s390-ccw/Makefile | 1 +
|
|||
|
1 file changed, 1 insertion(+)
|
|||
|
|
|||
|
diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
|
|||
|
index f0fe84c9eb..83fb1afb73 100644
|
|||
|
--- a/pc-bios/s390-ccw/Makefile
|
|||
|
+++ b/pc-bios/s390-ccw/Makefile
|
|||
|
@@ -30,6 +30,7 @@ OBJECTS = start.o main.o bootmap.o jump2ipl.o sclp.o menu.o \
|
|||
|
virtio.o virtio-scsi.o virtio-blkdev.o libc.o cio.o dasd-ipl.o
|
|||
|
|
|||
|
QEMU_CFLAGS := -Wall $(filter -W%, $(QEMU_CFLAGS))
|
|||
|
+QEMU_CFLAGS += $(call cc-option,-Werror $(QEMU_CFLAGS),-Wno-stringop-overflow)
|
|||
|
QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -fno-common -fPIE
|
|||
|
QEMU_CFLAGS += -fwrapv -fno-strict-aliasing -fno-asynchronous-unwind-tables
|
|||
|
QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
|
|||
|
--
|
|||
|
2.27.0
|
|||
|
|