[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 7/9] pc-bios/s390-ccw: Silence GCC 11 stringop-overflow warning
From: |
Thomas Huth |
Subject: |
[PULL 7/9] pc-bios/s390-ccw: Silence GCC 11 stringop-overflow warning |
Date: |
Mon, 10 May 2021 09:35:22 +0200 |
From: Philippe Mathieu-Daudé <philmd@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>
---
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
- [PULL 0/9] s390-ccw bios update, Thomas Huth, 2021/05/10
- [PULL 1/9] pc-bios/s390-ccw: don't try to read the next block if end of chunk is reached, Thomas Huth, 2021/05/10
- [PULL 2/9] pc-bios/s390-ccw/bootmap: Silence compiler warning from Clang, Thomas Huth, 2021/05/10
- [PULL 3/9] pc-bios/s390-ccw: Use reset_psw pointer instead of hard-coded null pointer, Thomas Huth, 2021/05/10
- [PULL 5/9] pc-bios/s390-ccw: Silence warning from Clang by marking panic() as noreturn, Thomas Huth, 2021/05/10
- [PULL 4/9] pc-bios/s390-ccw/netboot: Use "-Wl, " prefix to pass parameter to the linker, Thomas Huth, 2021/05/10
- [PULL 7/9] pc-bios/s390-ccw: Silence GCC 11 stringop-overflow warning,
Thomas Huth <=
- [PULL 6/9] pc-bios/s390-ccw: Fix the cc-option macro in the Makefile, Thomas Huth, 2021/05/10
- [PULL 8/9] pc-bios/s390-ccw: Allow building with Clang, too, Thomas Huth, 2021/05/10
- Re: [PULL 8/9] pc-bios/s390-ccw: Allow building with Clang, too, Philippe Mathieu-Daudé, 2021/05/12
[PULL 9/9] pc-bios/s390: Update the s390-ccw bios binaries with the Clang and other fixes, Thomas Huth, 2021/05/10
Re: [PULL 0/9] s390-ccw bios update, Peter Maydell, 2021/05/12