On Tue, Dec 18, 2018 at 09:31:00AM -0500, Michael S. Tsirkin wrote: > On Tue, Dec 18, 2018 at 12:03:30PM +0100, Philippe Mathieu-Daudé wrote: > > GCC 8 new warning prevents builds to success since quite some time. > > First report on the mailing list is in July 2018: > > https://lists.gnu.org/archive/html/qemu-devel/2018-07/msg03723.html > > > > Various intents has been sent to fix this: > > - Incorrectly using g_strlcpy() > > https://lists.gnu.org/archive/html/qemu-devel/2018-08/msg03705.html > > https://lists.gnu.org/archive/html/qemu-devel/2018-08/msg03706.html > > - Using assert() and strpadcpy() > > https://lists.gnu.org/archive/html/qemu-devel/2018-11/msg03938.html > > - Use #pragma GCC diagnostic ignored "-Wstringop-truncation" > > https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg04261.html > > - adding an inline wrapper with said pragma in there > > https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg04261.html > > - -Wno-stringop-truncation is the makefile > > https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg04261.html > > > > This series replace the strncpy() calls by strpadcpy() which seemed > > to me the saniest option. > > > > Regards, > > > > Phil. > > Do you happen to know why does it build fine with > Gcc 8.2.1? > > Reading the GCC manual it seems that > there is a "nostring" attribute that means
typo - its "nonstring" > "might not be 0 terminated". > I think we should switch to that which fixes the warning > but also warns if someone tries to misuse these > as C-strings. > > Seems to be a better option, does it not? Yes, it does look best as gcc manual explicitly suggests "nonstring" as the way to stop this strncpy warning. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1803872 Title: gcc 8.2 reports stringop-truncation when building qemu Status in QEMU: New Bug description: QEMU 3.0 block/sheepdog.c: In function 'find_vdi_name': block/sheepdog.c:1239:5: error: 'strncpy' specified bound 256 equals destination size [-Werror=stringop-truncation] strncpy(buf + SD_MAX_VDI_LEN, tag, SD_MAX_VDI_TAG_LEN); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If this is the intended behavior, please suppress the warning. For example: #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstringop-truncation" strncpy(buf + SD_MAX_VDI_LEN, tag, SD_MAX_VDI_TAG_LEN); #pragma GCC diagnostic pop This also happens on other sources, for example hw/acpi/core.c, so another option is to suppress it globally on CFLAGS (-Wno-stringop- truncation) To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1803872/+subscriptions