Got this building failure:

In file included from qemu-img.c:68:                                            
                                                                                
                        
qemu-img-cmds.h:22:1: error: unterminated argument list invoking macro 
"printf"                                                                        
                                 
cc1: warnings being treated as errors
qemu-img.c: In function ‘help’:
qemu-img.c:95: warning: statement with no effect
qemu-img.c:71: error: expected ‘;’ before string constant
qemu-img.c:95: error: expected statement before ‘)’ token
make: *** [qemu-img.o] Error 1

And git bisect figure out the commit: 84958305, "Enable _FORTIFY_SOURCE=2".

And the code is here:

    printf("qemu-img version " QEMU_VERSION ", Copyright (c) 2004-2008 Fabrice 
Bellard\n"
           "usage: qemu-img command [command options]\n"
           "QEMU disk image utility\n"
           "\n"
           "Command syntax:\n"
#define DEF(option, callback, arg_string)        \
           "  " arg_string "\n"
#include "qemu-img-cmds.h"
#undef DEF
#undef GEN_DOCS
....

Seems gcc take "printf" as a marco. I added a "#undef printf" before the line, 
then it works...

So any clue on what's happened and how to fix?

GCC version is 4.1.2.

-- 
regards
Yang, Sheng


Reply via email to