From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=54119 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pjf0p-00029G-5f for qemu-devel@nongnu.org; Sun, 30 Jan 2011 16:40:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pjf0K-0004r8-Ch for qemu-devel@nongnu.org; Sun, 30 Jan 2011 16:40:17 -0500 Received: from mail-pw0-f45.google.com ([209.85.160.45]:43617) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pjf0K-0004r1-3x for qemu-devel@nongnu.org; Sun, 30 Jan 2011 16:40:16 -0500 Received: by pwj6 with SMTP id 6so1101658pwj.4 for ; Sun, 30 Jan 2011 13:40:15 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <4D45D7C6.70706@mail.berlios.de> References: <1291491689-11982-1-git-send-email-weil@mail.berlios.de> <4D45D7C6.70706@mail.berlios.de> From: Blue Swirl Date: Sun, 30 Jan 2011 21:39:54 +0000 Message-ID: Content-Type: text/plain; charset=UTF-8 Subject: [Qemu-devel] Re: [PATCH] mingw32: Fix definitions for PRId64, PRIx64, PRIu64, PRIo64 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Weil Cc: QEMU Developers On Sun, Jan 30, 2011 at 9:27 PM, Stefan Weil wrote: > Am 04.12.2010 20:41, schrieb Stefan Weil: >> >> QEMU always uses POSIX format specifiers, even with mingw32. >> >> Therefore the old definitions of the PRI*64 macros were wrong. >> They should be removed, but as long as the mingw32 system >> include inttypes.h provides wrong definitions, too, >> we correct them here. >> >> Cc: Blue Swirl >> Signed-off-by: Stefan Weil >> --- >> qemu-common.h | 16 ++++++++++++---- >> 1 files changed, 12 insertions(+), 4 deletions(-) >> >> diff --git a/qemu-common.h b/qemu-common.h >> index de82c2e..c739f45 100644 >> --- a/qemu-common.h >> +++ b/qemu-common.h >> @@ -96,10 +96,18 @@ static inline char *realpath(const char *path, char >> *resolved_path) >> return resolved_path; >> } >> >> -#define PRId64 "I64d" >> -#define PRIx64 "I64x" >> -#define PRIu64 "I64u" >> -#define PRIo64 "I64o" >> +/* inttypes.h (mingw32) provides wrong definitions, so fix them here. */ >> +/* TODO: remove this workaround as soon as mingw32 is fixed. */ >> + >> +#undef PRId64 >> +#undef PRIx64 >> +#undef PRIu64 >> +#undef PRIo64 >> + >> +#define PRId64 "lld" >> +#define PRIx64 "llx" >> +#define PRIu64 "llu" >> +#define PRIo64 "llo" >> #endif >> >> /* FIXME: Remove NEED_CPU_H. */ > > What about this patch? It is still missing in QEMU git master. It would appear to suppress quite a few warnings about formats. But on my version of inttypes.h there is the following comment: /* 7.8.1 Macros for format specifiers * * MS runtime does not yet understand C9x standard "ll" * length specifier. It appears to treat "ll" as "l". * The non-standard I64 length specifier causes warning in GCC, * but understood by MS runtime functions. */ So is this change OK after all?