Hi all,

After upgrading gcc from 6.3.1 to 7.1.1, qemu can't be compiled with gcc.

The error is:

------
  CC      block/blkdebug.o
block/blkdebug.c: In function 'blkdebug_refresh_filename':
block/blkdebug.c:693:31: error: '%s' directive output may be truncated writing up to 4095 bytes into a region of size 4086 [-Werror=format-truncation=]
                  "blkdebug:%s:%s", s->config_file ?: "",
                               ^~
In file included from /usr/include/stdio.h:939:0,
                 from /home/adam/qemu/include/qemu/osdep.h:68,
                 from block/blkdebug.c:25:
/usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output 11 or more bytes (assuming 4106) into a destination of size 4096
   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        __bos (__s), __fmt, __va_arg_pack ());
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make: *** [/home/adam/qemu/rules.mak:69: block/blkdebug.o] Error 1
------

It seems that gcc 7 is introducing more restrict check for printf.
If using clang, although there are some extra warning, it can at least pass the compile.

Thanks,
Qu



Reply via email to