Patchwork w64: Fix compiler warning [-Wformat]

login
register
mail settings
Submitter Stefan Weil
Date Aug. 10, 2012, 7:45 p.m.
Message ID <1344627915-10971-1-git-send-email-sw@weilnetz.de>
Download mbox | patch
Permalink /patch/176611/
State Superseded
Headers show

Comments

Stefan Weil - Aug. 10, 2012, 7:45 p.m.
Glib2 uses __printf__ in macro G_GNUC_PRINTF for printf like
functions. For MinGW, we want __gnu_printf__ because we use
POSIX format specifiers instead of the MS format specifiers.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---
 configure |    2 ++
 1 file changed, 2 insertions(+)
Blue Swirl - Aug. 11, 2012, 2:42 p.m.
On Fri, Aug 10, 2012 at 7:45 PM, Stefan Weil <sw@weilnetz.de> wrote:
> Glib2 uses __printf__ in macro G_GNUC_PRINTF for printf like
> functions. For MinGW, we want __gnu_printf__ because we use
> POSIX format specifiers instead of the MS format specifiers.

I get these warnings from glib:
  CC    trace/control.o
In file included from
/usr/local/i686-mingw32msvc/include/glib-2.0/glib/gthread.h:34,
                 from
/usr/local/i686-mingw32msvc/include/glib-2.0/glib/gasyncqueue.h:34,
                 from /usr/local/i686-mingw32msvc/include/glib-2.0/glib.h:34,
                 from /src/qemu/qemu-common.h:40,
                 from /src/qemu/trace/control.h:13,
                 from /src/qemu/trace/default.c:10:
/usr/local/i686-mingw32msvc/include/glib-2.0/glib/gerror.h:46:
warning: '__gnu_printf__' is an unrecognized format function type
/usr/local/i686-mingw32msvc/include/glib-2.0/glib/gerror.h:70:
warning: '__gnu_printf__' is an unrecognized format function type
/usr/local/i686-mingw32msvc/include/glib-2.0/glib/gerror.h:88:
warning: '__gnu_printf__' is an unrecognized format function type
/usr/local/i686-mingw32msvc/include/glib-2.0/glib/gerror.h:94:
warning: '__gnu_printf__' is an unrecognized format function type

>
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>  configure |    2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/configure b/configure
> index 7cbf4b4..7e69574 100755
> --- a/configure
> +++ b/configure
> @@ -512,6 +512,8 @@ if test "$mingw32" = "yes" ; then
>    QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
>    # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
>    QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
> +  # GLIB2 and other libraries also support C99/POSIX format strings.
> +  QEMU_CFLAGS="-D__printf__=__gnu_printf__ $QEMU_CFLAGS"
>    LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
>  cat > $TMPC << EOF
>  int main(void) { return 0; }
> --
> 1.7.10
>
>
Stefan Weil - Aug. 11, 2012, 7:15 p.m.
Am 11.08.2012 16:42, schrieb Blue Swirl:
> On Fri, Aug 10, 2012 at 7:45 PM, Stefan Weil <sw@weilnetz.de> wrote:
>> Glib2 uses __printf__ in macro G_GNUC_PRINTF for printf like
>> functions. For MinGW, we want __gnu_printf__ because we use
>> POSIX format specifiers instead of the MS format specifiers.
> I get these warnings from glib:
>    CC    trace/control.o
> In file included from
> /usr/local/i686-mingw32msvc/include/glib-2.0/glib/gthread.h:34,
>                   from
> /usr/local/i686-mingw32msvc/include/glib-2.0/glib/gasyncqueue.h:34,
>                   from /usr/local/i686-mingw32msvc/include/glib-2.0/glib.h:34,
>                   from /src/qemu/qemu-common.h:40,
>                   from /src/qemu/trace/control.h:13,
>                   from /src/qemu/trace/default.c:10:
> /usr/local/i686-mingw32msvc/include/glib-2.0/glib/gerror.h:46:
> warning: '__gnu_printf__' is an unrecognized format function type
> /usr/local/i686-mingw32msvc/include/glib-2.0/glib/gerror.h:70:
> warning: '__gnu_printf__' is an unrecognized format function type
> /usr/local/i686-mingw32msvc/include/glib-2.0/glib/gerror.h:88:
> warning: '__gnu_printf__' is an unrecognized format function type
> /usr/local/i686-mingw32msvc/include/glib-2.0/glib/gerror.h:94:
> warning: '__gnu_printf__' is an unrecognized format function type

Oh, sorry, I forgot that older versions of gcc (before 4.4)
don't support __gnu_printf__.

I'll have to modify my patch...

Regards,

Stefan W.

Patch

diff --git a/configure b/configure
index 7cbf4b4..7e69574 100755
--- a/configure
+++ b/configure
@@ -512,6 +512,8 @@  if test "$mingw32" = "yes" ; then
   QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
   # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
   QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
+  # GLIB2 and other libraries also support C99/POSIX format strings.
+  QEMU_CFLAGS="-D__printf__=__gnu_printf__ $QEMU_CFLAGS"
   LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
 cat > $TMPC << EOF
 int main(void) { return 0; }