On Fri, Jun 24, 2011 at 7:11 AM, Stefan Weil <w...@mail.berlios.de> wrote: > Am 24.06.2011 07:41, schrieb Stefan Hajnoczi: >> >> On Thu, Jun 23, 2011 at 3:32 PM, Stefan Weil <w...@mail.berlios.de> wrote: >>> >>> Am 23.06.2011 15:35, schrieb Stefan Hajnoczi: >>>> >>>> On Thu, Jun 23, 2011 at 10:15:58AM +0200, Jan Kiszka wrote: >>>>> >>>>> From: Jan Kiszka <jan.kis...@siemens.com> >>>>> >>>>> Recent mingw32 provide those defines. >>> >>> ... and all of those defines are wrong, because QEMU does not use >>> MS format specifiers. http://patchwork.ozlabs.org/patch/74276/ >>> tried to fix this. My preferred solution is removing those PRI*64 from >>> qemu-common.h, because not only recent mingw32 versions provide >>> the (wrong) definitions, but even the Debian version provides them >>> (which is really old, but I use it for my regression tests). >>> >>> The wrong definitions do not allow using -Wformat for mingw32 >>> builds, but they work because (most?) relevant mingw32 functions >>> accept both MS and standard format specifiers. >>> >>> Adding the correct definitions (to qemu-os-win32.h, not to qemu-common.h) >>> would be another solution as long as mingw32 does not handle >>> __USE_MINGW_ANSI_STDIO correctly. >>> >>>>> >>>>> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> >>>>> --- >>>>> qemu-common.h | 3 +++ >>>>> 1 files changed, 3 insertions(+), 0 deletions(-) >>>> >>>> It's never too late to implement C99! >>>> >>>> Thanks, applied to the trivial patches tree: >>>> >>>> http://repo.or.cz/w/qemu/stefanha.git/shortlog/refs/heads/trivial-patches >>>> >>>> Stefan >>> >>> Stefan, the patch won't harm, but it's also unnecessary. >>> So it's up to you whether you remove it from your queue, >>> modify it as I suggested above or apply it as it is. >> >> Keeping those #defines unconditional prevents new mingw builds from >> working, according to the commit description. So we have to either >> remove them entirely or do them correctly. Dropping this patch will >> keep the build from working. >> >> I suggest we keep this patch. A follow-up patch can us MS format >> specifiers or do any other adjustments that make this work better. >> Stefan, would you be able to send that patch? >> >> Stefan > > Hi Stefan, > > I just did a "git blame include/inttypes.h" on cygwin/mingw32 sources > (git repository created from CVS). Here is the result: > > 8f6754d5 (dannysmith 2002-06-13 10:20:41 +0000 34) #define PRId64 "I64d" > 8f6754d5 (dannysmith 2002-06-13 10:20:41 +0000 52) #define PRIi64 "I64i" > 8f6754d5 (dannysmith 2002-06-13 10:20:41 +0000 70) #define PRIo64 "I64o" > 8f6754d5 (dannysmith 2002-06-13 10:20:41 +0000 90) #define PRIu64 "I64u" > 8f6754d5 (dannysmith 2002-06-13 10:20:41 +0000 109) #define PRIx64 "I64x" > 8f6754d5 (dannysmith 2002-06-13 10:20:41 +0000 127) #define PRIX64 "I64X" > > The format specifiers were added in 2002 and never changed since that time, > so they are rather old. They don't break any current mingw32 builds. > They will break builds as soon as mingw32 fixes the wrong definitions > (which I don't expect for the next months). > > I'll send a patch which simply removes the definitions from > qemu-common.h, so Jan's patch is no longer needed.
Thanks! Stefan