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
Sorry that should be "nonstring". > that means > "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? > Also maybe we can make strpadcpy check for the nonstring attribute too somehow? Or did gcc just hardcode the strncpy name? > > Marc-André Lureau (1): > > hw/acpi: Replace strncpy() by strpadcpy(pad='\0') > > > > Philippe Mathieu-Daudé (2): > > block/sheepdog: Replace strncpy() by strpadcpy(pad='\0') > > migration: Replace strncpy() by strpadcpy(pad='\0') > > > > block/sheepdog.c | 6 +++--- > > hw/acpi/aml-build.c | 6 ++++-- > > hw/acpi/core.c | 13 +++++++------ > > migration/global_state.c | 4 ++-- > > 4 files changed, 16 insertions(+), 13 deletions(-) > > > > -- > > 2.17.2
